Aktuelle Zeit: 30.05.2020 22:29

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 12:21 
Offline
Benutzeravatar

Registriert: 19.02.2010 20:19
Wohnort: Darmstadt
Hallo,

wie kann ich eine Linie Hintern eine Box darstellen ohne die Reihenfolge der Darstellung zu ändern (zu erste AddPathBox dann AddPathLine)

Gruß
MarcelX

EDIT: Kommentar eingefügt
Code:
If OpenWindow(0, 0, 0, 400, 200, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 0, 0, 400, 200)
  If StartVectorDrawing(CanvasVectorOutput(0))
    ; Alle Box abfragen und darstellen
    MovePathCursor(40, 20)
    AddPathBox(50, 50, 200, 50)
    FillPath(#PB_Path_Preserve)
   
    ; Alle Linie abfragen und darstellen
    MovePathCursor(40, 20)
    AddPathLine(150, 100, #PB_Path_Relative)
    VectorSourceColor(RGBA(0, 255, 0, 255))

    StrokePath(2)
 
    StopVectorDrawing()
  EndIf
 
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
EndIf

_________________
Win-10, PB 5.31 (Windows - x86)


Zuletzt geändert von marcelx am 31.01.2020 13:51, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 13:41 
Offline
Benutzeravatar

Registriert: 23.07.2011 02:08
Warum willst du die Reihenfolge nicht ändern.
So funktioniert "Drawing" nunmal, auch in der Realität.

Dann müsstest du die Linie bis zur Box zeichnen, von auf der anderen Seite der Box wieder weiter. Also eigentlich zwei Linien. Zuvor musst du natürlich die Schnittpunkte der Linie mit den Seiten der Box berechnen.

_________________
Signatur und so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 13:48 
Offline
Benutzeravatar

Registriert: 19.02.2010 20:19
Wohnort: Darmstadt
Der Code repräsentiert nicht die ganze Programm (es ist nur ein Beispiel).
Es ist so, dass die Box zu erste definiert werden und anschließen die Linie abgefragt und dargestellt.
Das Tränen der Linie wäre schwierig zu realisieren.

_________________
Win-10, PB 5.31 (Windows - x86)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 20:11 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo!

Eine einfache Möglichkeit wäre:

Code:
Procedure Drawing(ZEbene.i)
  If StartVectorDrawing(CanvasVectorOutput(0))
      If ZEbene = 0
        ; Alle Box abfragen und darstellen
        MovePathCursor(40, 20)
        AddPathBox(50, 50, 200, 50)
        FillPath(#PB_Path_Preserve)
      EndIf
      ; Alle Linie abfragen und darstellen
      If ZEbene = 1
        MovePathCursor(40, 20)
        AddPathLine(150, 100, #PB_Path_Relative)
        VectorSourceColor(RGBA(0, 255, 0, 255))
      EndIf
      StrokePath(2)
    StopVectorDrawing()
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 400, 200, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 0, 0, 400, 200)
 
  Repeat
    Event = WaitWindowEvent()
   
    If #PB_Event_Repaint
      Drawing(1)
      Drawing(0)
    EndIf
   
  Until Event = #PB_Event_CloseWindow
EndIf

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.2 / Android 7.0 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 20:37 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
@marcelx
Du musst die Datenbeschaffung und dass Zeichnen von einander trennen. Wenn du zuerst nur die Box hast, aber noch keine Daten für die Linie, dann speichere dir diese Boxdaten irgendwie und zeichne nur das was du hast (keine Linie, nur dir Box). Wenn du dann auch die Linendaten hast, zeichnest du alles erneut, erst die Line, dann die Box.

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 20:41 
Offline
Benutzeravatar

Registriert: 19.02.2010 20:19
Wohnort: Darmstadt
@ccode_new
interessant Lösung

_________________
Win-10, PB 5.31 (Windows - x86)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 20:45 
Offline
Benutzeravatar

Registriert: 19.02.2010 20:19
Wohnort: Darmstadt
#NULL
leider schwierig weil die Box bekannt sind und die Linie nachträglich aufgebaut werden auf die Box.
Was funktioniert ist z.B. alle Box ausgeben und wenn eine Linie dargestellt wurde, die Box nochmal ausgeben.

_________________
Win-10, PB 5.31 (Windows - x86)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 21:50 
Offline
Benutzeravatar

Registriert: 23.07.2011 02:08
Warum?

Ein StartDrawing()-StopDrawing() Block wird auf einmal ausgegeben. Zweimal etwas identisches zeichen macht also keinen Sinn.

_________________
Signatur und so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VectorDrawing Box im Vordergrund
BeitragVerfasst: 31.01.2020 22:56 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
#NULL hat geschrieben:
Du musst die Datenbeschaffung und dass Zeichnen von einander trennen.

Yup! Genau das ist das entscheidende Prinzip.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 9 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye