Приведённый в вопросе текст не имеет смысла.
Повторите попытку.
Модератор: Mikle
Public Function GetHeight(x As Single, z As Single) As Single
Dim xx As Single, zz As Single, ix As Long, iz As Long
xx = (x - Position.x) / ScaleXZ
zz = (z - Position.z) / ScaleXZ
ix = Int(xx)
iz = Int(zz)
xx = xx - ix
zz = zz - iz
If ix < 0& Or ix >= SizeXY - 1 Then GetHeight = 0: Exit Function
If iz < 0& Or iz >= SizeXY - 1 Then GetHeight = 0: Exit Function
Dim val1 As Single
If xx + zz < 1 Then
val1 = vBuf(ix + SizeXY * iz + SizeXY).pos.y + vBuf(ix + 1 + SizeXY * iz).pos.y - vBuf(ix + SizeXY * iz).pos.y
val1 = val1 * xx * zz + vBuf(ix + SizeXY * iz).pos.y * (1! - xx) * (1! - zz)
Else
val1 = vBuf(ix + SizeXY * iz + SizeXY).pos.y + vBuf(ix + 1 + SizeXY * iz).pos.y - vBuf(ix + SizeXY * iz + 1 + SizeXY).pos.y
val1 = val1 * (1! - xx) * (1! - zz) + vBuf(ix + SizeXY * iz + 1 + SizeXY).pos.y * xx * zz
End If
val1 = val1 + vBuf(ix + 1 + SizeXY * iz).pos.y * xx * (1! - zz)
val1 = val1 + vBuf(ix + SizeXY * iz + SizeXY).pos.y * (1! - xx) * zz
GetHeight = val1
End Function
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42