Vnos pravokotnikov: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
 
(6 vmesnih redakcij istega uporabnika ni prikazanih)
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 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>
 
<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]].
 
Za uporabo rutine si pripravimo gumb na orodjarni.Več o tem je v poglavju [[Urejevalnik orodjarne]].

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
EndSub

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