i have these function for convert 3D point to 2D point:
Code:
Private Function ConvertPositon3DTo2D(Position As Position3D, World3DSize As Size3D) As POINTAPI Dim ConvertedPosition As POINTAPI
Dim PosZZDepth As Long
PosZZDepth = Position.Z + World3DSize.ZDepth
If (PosZZDepth = 0) Then PosZZDepth = 1 'avoiding division by zero
Dim width As Double
Dim height As Double
width = World3DSize.width / 2
If (width = 0) Then width = 0
height = World3DSize.height / 2
If (height = 0) Then height = 0
ConvertedPosition.X = (Position.X * World3DSize.ZDepth / PosZZDepth) + width
ConvertedPosition.Y = (Position.Y * World3DSize.ZDepth / PosZZDepth) + height
ConvertPositon3DTo2D = ConvertedPosition
End Function
these function works.... but when the Z is negative the positions are wrong... and here it's the big problem