Seite 1 von 1

Dashpath() dash nicht... immer

Verfasst: 02.09.2016 15:50
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

Re: Dashpath() dash nicht... immer

Verfasst: 03.09.2016 14:07
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

Re: Dashpath() dash nicht... immer

Verfasst: 04.09.2016 11:57
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 :-)