Vnos pravokotnikov: Razlika med redakcijama
Iz SDMS
Jump to navigationJump to search| Vrstica 4: | Vrstica 4: | ||
<source> | <source> | ||
| − | + | Sub VnosPravokotnika | |
| − | + | Dim Y1, X1, Y2, X2, D1, D2, A As Float, L as TLayer | |
| − | + | L = SelectLayer ('Izberi plast za vnos pravokotnikov') | |
| − | + | If Not Assigned (L) Then Exit EndIf | |
| − | + | While InputLine ("Vnesi center in smer pravokotnika", Y1, X1, Y2, X2) | |
| − | + | A = Angle (Y2-Y1, X2-X1) | |
| − | + | If Not InputFloat ("Pravokotnik", "Vnesi dolžino", D1) Then Continue EndIf | |
| − | + | If Not InputFloat ("Pravokotnik", "Vnesi širino", D2) Then Continue EndIf | |
| − | + | L.EditRecord.Append | |
| − | + | L.EditRecord.SetPolygon | |
| − | + | L.EditRecord.AddPoint (Y1 - D1/2, X1 - D2/2) | |
| − | + | L.EditRecord.AddPoint (Y1 + D1/2, X1 - D2/2) | |
| − | + | L.EditRecord.AddPoint (Y1 + D1/2, X1 + D2/2) | |
| − | + | L.EditRecord.AddPoint (Y1 - D1/2, X1 + D2/2) | |
| − | + | L.EditRecord.SetCentroid (Y1, X1) | |
| − | + | L.EditRecord.Rotate (Y1, X1, RadToDeg (A)) | |
| − | + | L.EditRecord.Update | |
| − | + | Redraw | |
| − | + | Wend | |
| − | + | EndSub | |
</source> | </source> | ||
Trenutna redakcija s časom 17:41, 18. marec 2010
Včasih pripravljamo pravokotne izrise. S spodnjo rutino vnesemo v izbrano plast pravokotnike.
Po izbiri podatkovne plasti, v katero se bodo shranjevali pravokotniki, kliknemo sredino pravokotnika (centroid) in smer pravokotnika. Po vnosu dolžine in širine je pravokotnik narisan. Nadaljujemo z risanjem naslednjega.
Sub VnosPravokotnika
Dim Y1, X1, Y2, X2, D1, D2, A As Float, L as TLayer
L = SelectLayer ('Izberi plast za vnos pravokotnikov')
If Not Assigned (L) Then Exit EndIf
While InputLine ("Vnesi center in smer pravokotnika", Y1, X1, Y2, X2)
A = Angle (Y2-Y1, X2-X1)
If Not InputFloat ("Pravokotnik", "Vnesi dolžino", D1) Then Continue EndIf
If Not InputFloat ("Pravokotnik", "Vnesi širino", D2) Then Continue EndIf
L.EditRecord.Append
L.EditRecord.SetPolygon
L.EditRecord.AddPoint (Y1 - D1/2, X1 - D2/2)
L.EditRecord.AddPoint (Y1 + D1/2, X1 - D2/2)
L.EditRecord.AddPoint (Y1 + D1/2, X1 + D2/2)
L.EditRecord.AddPoint (Y1 - D1/2, X1 + D2/2)
L.EditRecord.SetCentroid (Y1, X1)
L.EditRecord.Rotate (Y1, X1, RadToDeg (A))
L.EditRecord.Update
Redraw
Wend
EndSubZa uporabo rutine si pripravimo gumb na orodjarni.Več o tem je v poglavju Urejevalnik orodjarne.
Risanje zaključimo z desnim gumbom na miški.
Nazaj na Zanimive rutine