Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,115 @@
|
|||
' Turtle Graphics Library by Angelo Rosina 1995
|
||||
' Ported to Freebasic by Angelo Rosina 2007
|
||||
'
|
||||
'(RIGH and LEF because RIGHT and LEFT are reserved keywords, of course)
|
||||
|
||||
Declare Sub LEF (gradi As Integer)
|
||||
Declare Sub SETCOL (C As Integer)
|
||||
Declare Sub SETSIZE (C As Integer)
|
||||
Declare Sub RIGH (gradi As Integer)
|
||||
Declare Sub FORW (passi As Integer)
|
||||
Declare Sub BACK (passi As Integer)
|
||||
Declare Sub TURTLE (numero As Integer)
|
||||
Declare Sub UP ()
|
||||
Declare Sub DOWN ()
|
||||
Declare Sub DTurtle ()
|
||||
|
||||
Dim Shared As Integer graph, dimen, angulo, N, dis, su, pasos
|
||||
Dim Shared As Integer colore(10), figura(5000,10), figura2()
|
||||
Dim Shared As Long X(10), Y(10)
|
||||
Dim Shared As String comando
|
||||
|
||||
Sub BACK (passi As Integer)
|
||||
pasos = passi
|
||||
comando = "d " & Str(passi)
|
||||
DTurtle
|
||||
comando = ""
|
||||
pasos = 0
|
||||
End Sub
|
||||
|
||||
Sub DOWN
|
||||
su = 0
|
||||
End Sub
|
||||
|
||||
Sub DTurtle Static
|
||||
Dim As Integer rifa, lavora, XX, YY, scher(), FX, FY
|
||||
Dim As String R
|
||||
|
||||
If rifa = 0 Then rifa = 1: Redim scher(5000)
|
||||
If lavora Then Put (XX - dimen * 4, YY - dimen * 2), scher, Pset
|
||||
'SCREEN graph
|
||||
If su Then comando = "b" & comando
|
||||
FX = X(N)
|
||||
FY = Y(N)
|
||||
R = "s" & Str(dimen) & "bm" & Str(FX) & "," & Str(FY) & "c" & Str(colore(N)) & "Ta" & Str(angulo) & comando
|
||||
Draw R
|
||||
X(N) = X(N) + Sin(angulo / 57.2957) * dimen / 4 * pasos
|
||||
Y(N) = Y(N) + Cos(angulo / 57.2957) * dimen / 4 * pasos
|
||||
XX = X(N)
|
||||
YY = Y(N)
|
||||
Get (X(N) - dimen * 4, Y(N) - dimen * 2)-(X(N) + dimen * 4, Y(N) + dimen * 2), scher: lavora = 1
|
||||
If dis = 0 Then
|
||||
R = "bm" & Str(XX) & "," & Str(YY) & "Ta" & Str(angulo) & "r1 ta " & Str(angulo + 15 + 360 * (angulo + 15 > 360)) & "u7 ta " & Str(angulo + 165 + 360 * (angulo + 165 > 360)) & "u7 ta" & Str(angulo) & " m" & Str(XX) & "," & Str(YY)
|
||||
Draw R
|
||||
Else
|
||||
Put (XX, YY), figura2, Or
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub FORW (passi As Integer)
|
||||
pasos = -passi
|
||||
comando = "u " & Str(passi)
|
||||
DTurtle
|
||||
comando = ""
|
||||
pasos = 0
|
||||
End Sub
|
||||
|
||||
Sub LEF (gradi As Integer)
|
||||
angulo += gradi
|
||||
Do Until angulo <= 360
|
||||
angulo -= 360
|
||||
Loop
|
||||
DTurtle
|
||||
End Sub
|
||||
|
||||
Sub RIGH (gradi As Integer)
|
||||
angulo -= gradi
|
||||
Do Until angulo >= 0
|
||||
angulo += 360
|
||||
Loop
|
||||
DTurtle
|
||||
End Sub
|
||||
|
||||
Sub SETCOL (C As Integer)
|
||||
colore(N) = C
|
||||
DTurtle
|
||||
End Sub
|
||||
|
||||
Sub SETSIZE (C As Integer)
|
||||
dimen = C
|
||||
DTurtle
|
||||
End Sub
|
||||
|
||||
Sub TURTLE (numero As Integer) Static
|
||||
Dim As Integer i, NN, j
|
||||
Dim As Integer ang()
|
||||
|
||||
Redim figura2(dis)
|
||||
If dis <> 0 And graph <> 0 Then
|
||||
For i = 0 To dis
|
||||
figura2(i) = figura(i, numero)
|
||||
Next i
|
||||
End If
|
||||
NN = N
|
||||
N = numero
|
||||
If j = 0 Then j = 1: Redim ang(10): dimen = 4
|
||||
If X(numero) = 0 Then X(numero) = 320
|
||||
If Y(numero) = 0 Then Y(numero) = 100: colore(numero) = 15
|
||||
ang(NN) = angulo
|
||||
angulo = ang(N)
|
||||
DTurtle
|
||||
End Sub
|
||||
|
||||
Sub UP
|
||||
su = 1
|
||||
End Sub
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
'Rosetta Code problem: https://rosettacode.org/wiki/Simple_turtle_graphics
|
||||
|
||||
'by Jjuanhdez, 03/2023
|
||||
|
||||
#include "Turtle_Graphics.bi"
|
||||
|
||||
Sub rectangle(ancho As Short, alto As Short)
|
||||
For i As Short = 1 To 2
|
||||
FORW alto
|
||||
LEF 90
|
||||
FORW ancho
|
||||
LEF 90
|
||||
Next i
|
||||
End Sub
|
||||
|
||||
Sub square(lado As Short)
|
||||
rectangle(lado, lado)
|
||||
End Sub
|
||||
|
||||
Sub triangle(lado As Short)
|
||||
For i As Short = 1 To 3
|
||||
FORW lado
|
||||
RIGH 120
|
||||
Next i
|
||||
End Sub
|
||||
|
||||
Sub house(lado As Short)
|
||||
LEF 90
|
||||
square lado
|
||||
triangle lado
|
||||
RIGH 90
|
||||
End Sub
|
||||
|
||||
Sub barchart(lst() As Double, lado As Short)
|
||||
Dim As Short i, min, max
|
||||
max = lst(Ubound(lst))
|
||||
|
||||
For i = Lbound(lst) To Ubound(lst)
|
||||
If lst(i) > max Then max = lst(i)
|
||||
Next i
|
||||
|
||||
Dim As Short escala = lado/max
|
||||
Dim As Short ancho = lado/Ubound(lst)
|
||||
|
||||
For i = Lbound(lst) To Ubound(lst)
|
||||
rectangle lst(i), ancho
|
||||
UP
|
||||
FORW ancho
|
||||
DOWN
|
||||
Next i
|
||||
UP
|
||||
BACK lado
|
||||
DOWN
|
||||
End Sub
|
||||
|
||||
Screenres 800,600
|
||||
Windowtitle "Simple turtle graphics"
|
||||
Cls
|
||||
|
||||
TURTLE 1
|
||||
SETSIZE 3
|
||||
SETCOL 0 'black
|
||||
|
||||
DOWN
|
||||
BACK 200
|
||||
SETCOL 2 'green
|
||||
|
||||
house 150
|
||||
UP
|
||||
RIGH 90
|
||||
FORW 50
|
||||
|
||||
Dim As Double s(1 To 6) = {1, 50, 33, 200, 130, 50}
|
||||
barchart s(), 200
|
||||
SETCOL 0
|
||||
Sleep
|
||||
Loading…
Add table
Add a link
Reference in a new issue