E-P-S hat geschrieben:Ist es möglich eine Linie mit einem eigenen Pattern auch so zu zeichnen das die Ausrichtung des Patterns dem Linienverlauf folgt?
Das geht so normal nicht, da es einfach ein Muster (Pattern) ist, das wiederholt gezeichnet wird (tiled).
Du kannst probieren es selbst zu machen. In Deinem Beispielbild sind 4 Linien zu sehen.
Für jede Linie kannst Du den Winkel ausrechnen und den Pen mit gSetPenRotation entsprechend
drehen. Danach nächste Linie mit neuem Winkel zeichnen.
Allerdings werden die Übergänge von den Linien wohl nicht so gut aussehen.
Test:
Code: Alles auswählen
XIncludeFile "gDrawing.pbi"
Global penImage.i
Procedure Draw()
gDrawingMode( #PB_2DDrawing_Outlined )
gSetPenSize(10)
gSetPenImage(penImage)
;gSetPenCaps(#PenCapRound,#PenCapRound)
gSetPenRotation(-45) : gSetPenOrigin(100,100)
gLineXY(100,100,200,200)
gResetPenTransform()
gSetPenRotation(-90) ;: gSetPenOrigin(200,200)
gLineXY(200,200,300,200)
gResetPenTransform()
gSetPenRotation(-135) ;: gSetPenOrigin(300,200)
gLineXY(300,200,400,100)
EndProcedure
penImage = CreateImage(#PB_Any,20,20)
If StartDrawing( ImageOutput(penImage) )
DrawingMode(#PB_2DDrawing_Gradient)
BackColor($00FFFF)
FrontColor($FF0000)
LinearGradient(0, 0, 0, 20)
Box(0,0,20,20)
StopDrawing()
EndIf
If gInit()
mainWin = OpenWindow(#PB_Any,0,0,800,600,"gDrawing feature demo",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
img = CreateImage(#PB_Any,800,600,24)
If gStartDrawing( ImageOutput(img) )
gClear( RGBA($AA,$AA,$AA,$FF) )
Draw()
gStopDrawing()
EndIf
imgWin = ImageGadget(#PB_Any,0,0,800,600,ImageID(img))
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
gEnd()
EndIf
Sieht mMn nicht gut aus.