1

我在 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 点?

4

0 回答 0