2DDrawing + #PB_2DDrawing_XOr

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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 
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Das verhält sich in jeder Sprache so. Das hat nichts mit PureBasic zu tun!
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag 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.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten