Vnos pravokotnikov: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
Vrstica 3: Vrstica 3:
 
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.
 
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.
  
 +
<source>
 
  Sub VnosPravokotnika
 
  Sub VnosPravokotnika
 
   Dim Y1, X1, Y2, X2, D1, D2, A As Float, L as TLayer
 
   Dim Y1, X1, Y2, X2, D1, D2, A As Float, L as TLayer
Vrstica 23: Vrstica 24:
 
   Wend
 
   Wend
 
  EndSub
 
  EndSub
 +
<source>
  
 
Za uporabo rutine si pripravimo gumb na orodjarni.Več o tem je v poglavju [[Urejevalnik orodjarne]].
 
Za uporabo rutine si pripravimo gumb na orodjarni.Več o tem je v poglavju [[Urejevalnik orodjarne]].

Redakcija: 14:58, 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.

<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>

Za 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