B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim Timer1 As Timer
End Sub
Sub Globals
Dim Canvas1 As Canvas
Dim r, d, x1, x2, y1, y2 As Double
Dim dia As Double
Dim addx As Double
dia = cPI * 2
addx = 0.016
xcenter=200
ycenter=400
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.Title = "Simple 3D Rotating lines"
If FirstTime Then Timer1.initialize("Timer1", 1)
canvas1.Initialize(Activity)
Timer1.Enabled = True
End Sub
Sub Activity_Resume
Timer1_Tick
End Sub
Sub Activity_Pause (UserClosed As Boolean)
Timer1.Enabled = False
End Sub
Sub Timer1_Tick
r=r+addx
If r>dia Then r=0
Globe
End Sub
Sub Globe
Canvas1.DrawColor(Colors.Black)
For d = 0 To 29
x1 = Cos(r+(d*addx*10))*100+xcenter
y1 = Sin(r+(d*addx*10))*20+ycenter-100
x2 = Cos(r+(dia/2)+(d*addx*10))*100+xcenter
y2 = Sin(r+(dia/2)+(d*addx*10))*20+ycenter+100
Canvas1.DrawLine(x1, y1, x2, y2, Colors.RGB(255-(d*4),0,0),1)
Next
Activity.Invalidate
End Sub
This is a small graphic demo about rotating lines. It works at average speed on my ZTE Blade.