Как определить 3D-координаты точки в 3D-треугольнике, зная, что это 2D-координаты
У меня есть этот код в классе VB, который преобразует 3D-точку в 2D-точку для рисования на экране:
Dim N As Point3D, Triangle As Point3D
N.X = 20: N.Y = 30: N.Z = 40
For I = 0 To 2
With N
ZX = .X * CosZ - .Y * SinZ - .X
ZY = .X * SinZ + .Y * CosZ - .Y
YX = (.X + ZX) * CosY - .Z * SinY - (.X + ZX)
YZ = (.X + ZX) * SinY + .Z * CosY - .Z
XY = (.Y + ZY) * CosX - (.Z + YZ) * SinX - (.Y + ZY)
XZ = (.Y + ZY) * SinX + (.Z + YZ) * CosX - (.Z + YZ)
.X = YX + ZX + .X
.Y = ZY + XY + .Y
.Z = XZ + YZ + .Z
'Add Depth and Coordinates
Triangle.T2D(I).X = .X * 0.999 ^ (.Z + Me.Z) + Me.X * 2
Triangle.T2D(I).Y = .Y * 0.999 ^ (.Z + Me.Z) + Me.Y * 2
End With
Next
С помощью этого кода я конвертирую три 3D-точки и сохраняю их как 2D-точки в треугольнике, чтобы нарисовать 3D-треугольник.
Из тонущего треугольника, как я могу преобразовать 2D точку (Xp,Yp), которая находится внутри треугольника, и преобразовать ее в 3D точку?