Dashpath() dash nicht... immer

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

Dashpath() dash nicht... immer

Beitrag von kartmanne »

HI,

diese Sequenz:

Code: Alles auswählen

StartVectorDrawing(CanvasVectorOutput(Canvas_grafik_lm))
    VectorSourceColor(RGBA(0,0,255,255))  ; blau 
    MovePathCursor(40,(VectorOutputHeight()-30) / y_span * y_max+20)                                     
    For i=1 To lm_array_index
      lx= (VectorOutputWidth()-50)/dz_max*lm_array(2,i) +40  
      ly= (VectorOutputHeight()-30)/y_span * (y_max-lm_array(5,i))+20
      AddPathLine(lx,ly)
    Next i
    StrokePath(1)
    MovePathCursor(40,(VectorOutputHeight()-30) / y_span * y_max+20)
    For i=1 To lm_array_index
      lx= (VectorOutputWidth()-50)/dz_max*lm_array(2,i) +40  
      ly= (VectorOutputHeight()-30)/y_span *(y_max-lm_array(4,i)*m_nm)+20
      AddPathLine(lx,ly)
    Next i
    DashPath(1,5)
    StopVectorDrawing()
schafft es nicht immer zu dashen, d.h. ab und zu ist der zu dash-ende Pfad durchgezogen.
Muss da noch etwas befohlen werden, damit das dash-en immer funktioniert?


PB 5.50 auf XP
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Re: Dashpath() dash nicht... immer

Beitrag von #NULL »

ohne den stroke teil und ohne deine variablen ist bei mir alles gestrichelt. mit dem stroke darunter sieht man es vielleicht einfach nicht so gut, oder dein array etc hat falsche daten.

Code: Alles auswählen

EnableExplicit
Define ww,wh,style,win,ch,event,eType,eGadget,eMenu,quit

ww=800
wh=600
style | #PB_Window_ScreenCentered
style | #PB_Window_SystemMenu
style | #PB_Window_MinimizeGadget

win=OpenWindow(#PB_Any, 50,100, ww,wh, "", style) :: AddKeyboardShortcut(win, #PB_Shortcut_Escape, 10)
Define Canvas_grafik_lm = CanvasGadget(#PB_Any, 10, 10, 200,200)
Define i,lm_array_index=10,lx,ly
StartVectorDrawing(CanvasVectorOutput(Canvas_grafik_lm))
VectorSourceColor(RGBA(0,0,255,255))  ; blau
; MovePathCursor(40,(VectorOutputHeight()-30)); / y_span * y_max+20)                                     
; For i=1 To lm_array_index
;   lx= (VectorOutputWidth()-50)/i;dz_max*lm_array(2,i) +40 
;   ly= (VectorOutputHeight()-30)/i;y_span * (y_max-lm_array(5,i))+20
;   AddPathLine(lx,ly)
; Next i
; StrokePath(1)
MovePathCursor(40,(VectorOutputHeight()-30)); / y_span * y_max+20)
For i=1 To lm_array_index
  lx= (VectorOutputWidth()-50)/i;dz_max*lm_array(2,i) +40 
  ly= (VectorOutputHeight()-30)/i;y_span *(y_max-lm_array(4,i)*m_nm)+20
  AddPathLine(lx,ly)
Next i
DashPath(1,5)
StopVectorDrawing()

Repeat
  Repeat
    event = WaitWindowEvent(5)
    Select event
      Case #PB_Event_CloseWindow
        quit = #True
    EndSelect
  Until Not event
Until quit
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

Re: Dashpath() dash nicht... immer

Beitrag von kartmanne »

HI,
hmmm.
Ich bin einen Schritt weiter: Wenn die Zeichkoordinaten außerhalb des Zeichfeldes liegen, oder die Berechnungen den Zahelraum überschreiten, dann ist die Linie unge-dashed und bleibt auch so.
m_nm ist ein berechneter Maßstab. Bei extrem hohen Werten kommt's mir auch so vor, dass dash durchgezogen wird. Ich versuch einfach, diese Extremwerte zu vermeiden, dann scheint's zu dashen.

Danke für deinen Denkanschups :-)
Antworten