Vnos pravokotnikov: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
Vrstica 4: Vrstica 4:
  
 
<source Lang=mapbasic>
 
<source Lang=mapbasic>
 
 
  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 25: Vrstica 24:
 
   Wend
 
   Wend
 
  EndSub
 
  EndSub
<source>
+
<source Lang=mapbasic>
  
 
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: 15:00, 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 Lang=mapbasic>

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 Lang=mapbasic>

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