S.17 Regular Polyhedron

目次のページ; 前のページ; 次のページ

 多面体のデータを作成することと、中心投影図を作成するための教材に使いました。隠れ線処理はしていません。

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

次のページ