多面体のデータを作成することと、中心投影図を作成するための教材に使いました。隠れ線処理はしていません。
Public Sub Proc17() '--- Regurlar Polyhedron Drawing
Static ax(7), ay(7), az(7), bx(7), by(7), bz(7)
Dim h, thy, thz, x1, y1, z1, x2, y2, z2, nn, Igra
Select Case Ivar
Case 1: N = 3
Case 2: N = 4
Case 3: N = 5
Case 4: N = 6
Case Else: thy = 0.01
End Select
'------ Camera Position
CamP(1) = 800: CamP(2) = 0: CamP(3) = 0
Dpcam 0.6, 0, Flen
Dperas: Dpwind 0, 0, 640
'------
r = 130: h = 100: thy = 0.3: thz = 0.2: nn = 1
For Th = 0 To 2 * pie + 0.1 Step 2 * pie / N
x1 = r * Sin(Th): y1 = r * Cos(Th): z1 = h: z2 = -h
Rotz x1, y1, x1, y1, thz
x2 = x1: y2 = y1
Roty z1, x1, z1, x1, thy
Roty z2, x2, z2, x2, thy
ax(nn) = x1: ay(nn) = y1: az(nn) = z1
bx(nn) = x2: by(nn) = y2: bz(nn) = z2
nn = nn + 1
Next
'-----
For nn = 1 To N
Igra = 0
DrawPolyLine3 ax(nn), ay(nn), az(nn), Igra
DrawPolyLine3 ax(nn + 1), ay(nn + 1), az(nn + 1), Igra
DrawPolyLine3 bx(nn + 1), by(nn + 1), bz(nn + 1), Igra
DrawPolyLine3 bx(nn), by(nn), bz(nn), Igra
DrawPolyLine3 ax(nn), ay(nn), az(nn), Igra
Next
Dptext 80, 170, ("N =" + CStr(N) + "; thy=" + CStr(thy))
End Sub