das Vectorzeug bekomme ich irgendwie nicht so richtig in die weiche (und alte) Birne.
Ich habe hier das Beispiel aus dem Handbuch zu IsInsideStroke() benutzt, um es für meine Zwecke zu nutzen.
Es sollte also auch die Farbe wechseln, sobald die Maus sich auf dem Pfad befindet, aber egal, was ich probiere, es haut nie hin.
Vermutlich hängt das mit Scale- und TranslateCoordinates() zusammen, die brauche ich aber im Endprodukt tatsächlich.
Kann mich bitte jemand erleuchten?
Hier der Code:
Code: Alles auswählen
Procedure Draw()
Protected x.d, y.d, Width.d, w, h
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
If StartVectorDrawing(CanvasVectorOutput(0))
VectorSourceColor($FFFFFFFF)
FillVectorOutput()
w = VectorOutputWidth()
h = VectorOutputHeight()
Width = 0.0000002641
FlipCoordinatesY(h / 2)
ScaleCoordinates(13.3333333333, 3786996.0382195143)
TranslateCoordinates(0, -0.0067893411)
AddPathSegments("M 1 0.006883684 L 2 0.006883743 L 3 0.006882627 L 4 0.006880347 L 5 0.006877271 L 6 0.006873311 L 7 0.006868782 L 8 0.006863712 " +
"L 9 0.006858186 L 10 0.006852056 L 11 0.006845856 L 12 0.006839717 L 13 0.006834028 L 14 0.006828995 L 15 0.006824892 " +
"L 16 0.006821816 L 17 0.006819845 L 18 0.006818386 L 19 0.006817529 L 20 0.006816264 L 21 0.006814703 L 22 0.006812286 " +
"L 23 0.006809421 L 24 0.006806085 L 25 0.006802817 L 26 0.006800089 L 27 0.006798427 L 28 0.006797923 L 29 0.006799454 " +
"L 30 0.006802433 L 31 0.006806633 L 32 0.006811704 L 33 0.006817185 L 34 0.006822824 L 35 0.006827743 L 36 0.0068322 " +
"L 37 0.006835851 L 38 0.006839383 L 39 0.006842413 L 40 0.00684561 L 41 0.006849194 L 42 0.006853179 L 43 0.006857547 " +
"L 44 0.006862035 L 45 0.00686658 L 46 0.006870781 L 47 0.006874538 L 48 0.006877611 L 49 0.006880157 L 50 0.006881801 " +
"L 51 0.00688287 L 52 0.006883375 L 53 0.00688327 L 54 0.006882146 L 55 0.006880147 L 56 0.006877121 L 57 0.006872884 " +
"L 58 0.006868 L 59 0.006862468 L 60 0.006856883")
If IsInsideStroke(x, y, Width, #PB_Path_Default, #PB_Coordinate_Device)
VectorSourceColor(RGBA(0, 255, 0, 255))
Else
VectorSourceColor(RGBA(0, 0, 255, 255))
EndIf
StrokePath(Width)
StopVectorDrawing()
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 400, 200)
Draw()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget And EventGadget() = 0 And EventType() = #PB_EventType_MouseMove
Draw()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf