Rotating Cube

   I am trying to come up with something that will work like 3d. This is what I

have so far  :


  -- Written by Rick3137.   Tested on Windows10
win = openwindow ("Start",-1,-1,1200,700)
setactivewindow (win)
backcolor (0,0,0,255)
cls()

sync()
    x=0 ; y=0 ; f= 0 ; x1=0 ; y1 = 0 ; Ang = 0 ; r = 500
    Pi = math.pi ; AngleS = Pi / 180 -- Angle Segment equal to 1.0 degrees
    px = {0,0,0,0,0,0,0,0,0,0}    --  Point X
    py = {0,0,0,0,0,0,0,0,0,0}    --  Point Y
    Ang = { 0,0,0,0 }             -- Holds the 4 bottom cube angles           
    color (255,225,255,100)

function DrawQuad( cx,cy,radius, Ang1)
          --Ang1 moves from 0 to 200
          local Angle = 0 ; a1 = Pi / 180 ; x2=0 ; y2=0 ; x3=400 ; y3 = 400
          Ang[1] = Ang1     
       for a=0,360 do
           Angle = a * AngleS
           x2 = cos(Angle) * radius + cx
           y2 = -.3 * sin(Angle) * radius + cy
           --dot(x2,y2)
           Ang[2] = Ang1 + 90 ; Ang[3] = Ang1 + 180 ; Ang[4] = Ang1 + 270
                for b=1,4 do
                    if (Ang[b] > 360 ) then
                        Ang[b] = Ang[b] - 360
                    end
                    if (a == Ang[b] ) then      -- start at 45
                         px[b] =  x2  ; py[b] = y2
                    end
                end
      
       end
       DrawLines(radius)
end

function DrawLines(radius)
       line( px[1], py[1], px[2], py[2] ) ;line( px[2], py[2], px[3], py[3] ) ;line( px[3], py[3], px[4], py[4] )
       line( px[1], py[1], px[4], py[4] )
       line( px[1], py[1] - radius, px[2], py[2] - radius ) ;line( px[2], py[2] - radius, px[3], py[3] - radius )
       line( px[3], py[3] - radius, px[4], py[4] - radius ) ; line( px[1], py[1] - radius, px[4], py[4] - radius )     
       line( px[1], py[1], px[1], py[1] - radius ) ; line( px[2], py[2], px[2], py[2] - radius )
       line( px[3], py[3], px[3], py[3] - radius ) ; line( px[4], py[4], px[4], py[4] - radius )
       
       drawtext ( Ang1,0,30)
       sync()
       --wait( 100)
end

   color (100,100,0,255)

  a = 45 ; cnt = 0 ; key = 200
    while key > 100 do
        color (0,0,0,255)
        --cls()
        fillrectangle( 0,40,1000,700 )
        color (255,255,255,255)
        DrawQuad( 400,400,200,a )   -- x,y,radius,angle
        wait(5)
        sync()
        a = a + 1 ; cnt = cnt + 1
        if (a>360) then
           a = a - 360
        end
        key = getkey()
        drawtext ("Press any key to exit ..",0,0)
        sync()
     end
sync()
closewindow(win)
closeapplication()








 

Make a free website with Yola