Dotted/Dashed Line/Box
Author: Jare
Added: 9. huhtikuuta 2011 kello 21.59
Edited: 15. huhtikuuta 2011 kello 22.19
Category: Grafiikka
Description
Voit piirtää viivoja tai täyttämättömiä laatikoita, joiden reunat ovat joko katkoviivaa tai pisteitä.
Code
Select all1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | //Esimerkki
SCREEN 400,400
Repeat
DashedBox(10,10,MouseX(),MouseY())
DashedLine(10,10,MouseX(),MouseY())
DottedBox(390,390,MouseX(),MouseY())
DottedLine(390,390,MouseX(),MouseY())
DrawScreen
Forever
Function DottedLine(x1,y1, x2,y2, tiheys=-1)
//Piirtää pisteytetyn viivan
If tiheys=-1 Then tiheys=5 'SÄÄDÄ TIHEYDEN OLETUSARVO TÄHÄN 5:N TILALLE!
iMax = Max(Abs(x1-x2),Abs(y1-y2))
Dot x1,y1 'Ensimmäinen piste ja
Dot x2,y2 'Päätepiste piirretään varmasti
Repeat
i#=i+tiheys
If i<=iMax Then
pros# = i/iMax
x=x1+(x2-x1)*pros
y=y1+(y2-y1)*pros
Dot x,y
End If
Until i >= iMax
End Function
Function DottedBox(x1,y1, x2,y2, tiheys=-1)
//Piirtää pisteytetyllä reunaviivalla olevan laatikon
//Vaatii DottedLine()-funktion rinnalleen toimiakseen
//(tiheyden oletusarvo on aina sama kuin DottedLine()-funktiossa)
DottedLine(x1,y1,x1,y2,tiheys)
DottedLine(x1,y1,x2,y1,tiheys)
DottedLine(x2,y1,x2,y2,tiheys)
DottedLine(x1,y2,x2,y2,tiheys)
End Function
Function DashedLine(x1,y1, x2,y2, tiheys=-1)
//Piirtää katkoviivan
If tiheys=-1 Then tiheys=20 'SÄÄDÄ TIHEYDEN OLETUSARVO TÄHÄN 20:N TILALLE!
d=GetAngle(x1,y1, x2,y2)
iMax = Max(Abs(x1-x2),Abs(y1-y2))
xMax = Max(x1,x2) : xMin = Min(x1,x2)
yMax = Max(y1,y2) : yMin = Min(y1,y2)
i#=-tiheys
Repeat
i=i+tiheys
If i<=iMax Then
pros# = i/iMax
x = x1+(x2-x1)*pros
y = y1+(y2-y1)*pros
xx = x+Cos(d)*tiheys/2
xx = Min(Max(xx,xMin),xMax)
yy = y-Sin(d)*tiheys/2
yy = Min(Max(yy,yMin),yMax)
Line x,y, xx,yy
End If
Until i>=iMax
End Function
Function DashedBox(x1,y1, x2,y2, tiheys=-1)
//Piirtää katkoreunaviivalla olevan laatikon
//Vaatii DashedLine()-funktion rinnalleen toimiakseen
//(tiheyden oletusarvo on aina sama kuin DashedLine()-funktiossa)
DashedLine(x1,y1,x1,y2,tiheys)
DashedLine(x1,y1,x2,y1,tiheys)
DashedLine(x2,y1,x2,y2,tiheys)
DashedLine(x1,y2,x2,y2,tiheys)
End Function
|
Comments
No comments. You can be first!
Leave a comment
You must be logged in to comment.