Seite 2 von 2

Verfasst: 25.05.2009 21:09
von Falko
Ich denke auch, dass das nicht so sein sollte.
Allein schon ein XOR mit Outlined ist besser wie das obige Beispiel.
Füllt man dieses, sieht es auch nicht so ausgefranzt aus.

Code: Alles auswählen

CreateImage(0, 256, 256)

StartDrawing(ImageOutput(0))
  DrawingMode(#PB_2DDrawing_Outlined |#PB_2DDrawing_XOr)
  Circle(128,128,64)
 ;FillArea(128,128,-1,$FFFFFF); hiermit dann z.B. füllen.
StopDrawing()

OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "Fenster", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 ImageGadget(0,0,0,ImageWidth(0), ImageHeight(0), ImageID(0))

Repeat
 Event = WaitWindowEvent()
 Select Event
  Case #PB_Event_CloseWindow
   End
 EndSelect
ForEver 

Oder vielleicht so.

Code: Alles auswählen

CreateImage(0, 256, 256)

StartDrawing(ImageOutput(0))
  DrawingMode(#PB_2DDrawing_Outlined|#PB_2DDrawing_XOr)
  Circle(128,128,64)
  DrawingMode(#PB_2DDrawing_XOr)
  Circle(128,128,64)
StopDrawing()

OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "Fenster", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 ImageGadget(0,0,0,ImageWidth(0), ImageHeight(0), ImageID(0))

Repeat
 Event = WaitWindowEvent()
 Select Event
  Case #PB_Event_CloseWindow
   End
 EndSelect
ForEver 

Verfasst: 29.05.2009 14:59
von Fluid Byte
Das verhält sich in jeder Sprache so. Das hat nichts mit PureBasic zu tun!

Verfasst: 29.05.2009 16:25
von Falko
Fluid Byte hat geschrieben:Das verhält sich in jeder Sprache so. Das hat nichts mit PureBasic zu tun!
Bestätigt!!! Ich habe das mal mit GFA-Basic ausprobiert.
Gleiches Fransenergebnis.

Gruß Falko

Verfasst: 29.05.2009 17:22
von Fluid Byte
Geht doch! :mrgreen:

Wie gesagt, es liegt daran das Rand und Füllung beim XOR'en getrennt behandelt werden. Deshalb muss der Rand eben vorher entfernt werden.