[Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

[Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Beitrag von Thorsten1867 »

DrawEx - Module (all OS / 64Bit / DPI)

Befehle für 2DDrawing mit Antialiasing Effekt

Bild

Code: Alles auswählen

; Draw::AlphaColor()    - similar to RGBA()
; Draw::aBox()          - similar to Box()
; Draw::aCircle()       - similar to Circle()
; Draw::aCircleArc()    - draws a arc of a circle
; Draw::aCircleSector() - draws a circle sector
; Draw::aLine()         - similar to Line()
; Draw::aLineXY()       - similar to LineXY()
; Draw::MixColor()      - mixes 2 colours in a mixing ratio of 1% - 99%
Download: DrawExModule.pbi
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: [Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Beitrag von RSBasic »

Vielen Dank nochmal für die vielen Module. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Beitrag von Thorsten1867 »

Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: [Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Beitrag von STARGÅTE »

Hast du die neue VectorDrawing-Lib von PB nicht gesehen?

Hier dein Beispiel mit PB-Befehlen:

Code: Alles auswählen

#Window = 0
#Gadget = 1

If OpenWindow(#Window, 0, 0, 200, 200, "2DDrawing Beispiel", #PB_Window_SystemMenu|#PB_Window_Tool|#PB_Window_ScreenCentered)
	
	CanvasGadget(#Gadget, 10, 10, 180, 180)
	
	If StartVectorDrawing(CanvasVectorOutput(#Gadget))
		
		; Draw::aLineXY(90, 90, 90 + 80 * Cos(Radian(230)), 90 + 80 * Sin(Radian(230)), $228B22, Draw::#DPI)
		MovePathCursor(90, 90)
		AddPathLine(90 + 80 * Cos(Radian(230)), 90 + 80 * Sin(Radian(230)))
		VectorSourceColor($FF228B22)
		StrokePath(1)
		; Draw::aCircleSector(90, 90, 70, 40, 90, $800000, $00D7FF, Draw::#DPI)
		MovePathCursor(90, 90)
		AddPathCircle(90, 90, 70, 40, 90, #PB_Path_Connected)
		ClosePath()
		VectorSourceColor($FF00D7FF)
		FillPath(#PB_Path_Preserve)
		VectorSourceColor($FF800000)
		StrokePath(1)
		; Draw::aCircle(90, 90, 80, $800000, Draw::#DPI)
		AddPathCircle(90, 90, 80)
		VectorSourceColor($FF800000)
		StrokePath(1)
		; Draw::aCircleArc(90, 90, 70, 250, 340, $008CFF, Draw::#DPI)
		AddPathCircle(90, 90, 70, 250, 340)
		VectorSourceColor($FF008CFF)
		StrokePath(1)
		; Draw::aLine(10, 90, 160, 1, $8515C7, Draw::#DPI)
		MovePathCursor(10, 90)
		AddPathLine(160, 0, #PB_Path_Relative)
		VectorSourceColor($FF8515C7)
		StrokePath(1)
		; Draw::aBox(5, 5, 170, 170, $CD0000, Draw::#DPI)
		AddPathBox(5, 5, 170, 170)
		VectorSourceColor($FFCD0000)
		StrokePath(1)
		
		StopVectorDrawing() 
	EndIf
	
	Repeat
		Event = WaitWindowEvent()
	Until Event = #PB_Event_CloseWindow
	
EndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] DrawEx - 2DDrawing mit Antialiasing (all OS)

Beitrag von Thorsten1867 »

Doch die habe ich gesehen, doch die hat RGBA() - Farben vorausgesetzt, die ich zu diesem Zeitpunkt nicht verwenden konnte.

So habe ich eine Lösung gesucht, bei der ich die Farben mit der Hintergrundfarbe gemischt und so ein Pseudeo-Antialiasing erzeugt.
Als mir dann die Idee kam, wie ich das RGBA() Problem umgehen kann, war es schon zu spät und ich hatte schon die ganzen Routinen, die lediglich auf Transparenz umgestellt werden mussten. :roll:

Nachdem das ganze eine äußerst interessante Herausforderung war, habe ich das Modul trotzdem veröffentlicht für Leute, die 2D-Drawing verwenden.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten