Beispiele zu den Gradient-Befehlen
Beispiele zu den Gradient-Befehlen
Gibt es, außer der 2DDrawing.pb aus den 4.40er Beispielen, offizielle Beispiele zu den neuen Gradient-Befehlen?
-
- Beiträge: 82
- Registriert: 08.09.2005 18:07
- Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit - Wohnort: Nordhessen - früher : Südniedersachsen
Ich habe da was geschrieben...
Ich habe eine kleine Gradient-Demo geschrieben,der Quelltext ist allerdings 250 Zeilen lang.
Kann ich den hier posten?
Kann ich den hier posten?
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
-
- Beiträge: 82
- Registriert: 08.09.2005 18:07
- Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit - Wohnort: Nordhessen - früher : Südniedersachsen
Okay...
Das Programm ist nicht besonders strukturiert und arbeitet mit festen Farben.GradientColor() muß also im Quelltext geändert werden.
( Der Quelltext sollte nicht noch länger werden ).
( Der Quelltext sollte nicht noch länger werden ).
Code: Alles auswählen
;Gradient-Test written 30.08.2009 by "bizzl"
EnableExplicit
Define event.l
Structure LinearGradient
top.l
bottom.l
left.l
right.l
gad.l[14]
EndStructure
Structure BoxedGradient
x.l
y.l
width.l
height.l
gad.l[14]
EndStructure
Structure EllipticalGradient
x.l
y.l
xrad.l
yrad.l
gad.l[14]
EndStructure
Structure ConicalGradient
x.l
y.l
angle.f
gad.l[11]
EndStructure
Global lg.LinearGradient,bg.BoxedGradient,eg.EllipticalGradient,cg.ConicalGradient
Procedure Draw()
If StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Gradient)
LinearGradient(lg\left,lg\top,lg\right,lg\bottom)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Box(0,0,100,100)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(1))
DrawingMode(#PB_2DDrawing_Gradient)
LinearGradient(lg\left,lg\top,lg\right,lg\bottom)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Circle(50,50,50)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(2))
DrawingMode(#PB_2DDrawing_Gradient)
BoxedGradient(bg\x,bg\y,bg\width,bg\height)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Box(0,0,100,100)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(3))
DrawingMode(#PB_2DDrawing_Gradient)
BoxedGradient(bg\x,bg\y,bg\width,bg\height)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Circle(50,50,50)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(4))
DrawingMode(#PB_2DDrawing_Gradient)
EllipticalGradient(eg\x,eg\y,eg\xrad,eg\yrad)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Box(0,0,100,100)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(5))
DrawingMode(#PB_2DDrawing_Gradient)
EllipticalGradient(eg\x,eg\y,eg\xrad,eg\yrad)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Circle(50,50,50)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(6))
DrawingMode(#PB_2DDrawing_Gradient)
ConicalGradient(cg\x,cg\y,cg\angle)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Box(0,0,100,100)
StopDrawing()
EndIf
If StartDrawing(ImageOutput(7))
DrawingMode(#PB_2DDrawing_Gradient)
ConicalGradient(cg\x,cg\y,cg\angle)
GradientColor(0.0,RGB(243, 16, 0))
GradientColor(0.25,RGB(19, 16, 236))
GradientColor(0.50,RGB(123, 169, 56))
GradientColor(0.75,RGB(252, 250, 52))
GradientColor(1.0,RGB(243, 16, 0))
Circle(50,50,50)
StopDrawing()
EndIf
EndProcedure
Procedure Init()
Protected x
For x=0 To 7
If CreateImage(x,100,100)=0:ProcedureReturn #False:EndIf
Next x
lg\gad[0]=ContainerGadget(#PB_Any,10,10,200,400,#PB_Container_Raised)
lg\gad[1]=TextGadget(#PB_Any,0,10,200,20,"LinearGradient",#PB_Text_Center )
lg\gad[2]=TextGadget(#PB_Any,10,30,50,20,"Top:")
lg\gad[3]=TrackBarGadget(#PB_Any,50,30,100,20,0,100)
lg\gad[4]=TextGadget(#PB_Any,10,60,50,20,"Left:")
lg\gad[5]=TrackBarGadget(#PB_Any,50,60,100,20,0,100)
lg\gad[6]=TextGadget(#PB_Any,10,90,50,20,"Right:")
lg\gad[7]=TrackBarGadget(#PB_Any,50,90,100,20,0,100):SetGadgetState(lg\gad[7],100)
lg\gad[8]=TextGadget(#PB_Any,10,120,50,20,"Bottom:")
lg\gad[9]=TrackBarGadget(#PB_Any,50,120,100,20,0,100):SetGadgetState(lg\gad[9],100)
lg\gad[10]=TextGadget(#PB_Any,160,30,20,20,"0")
lg\gad[11]=TextGadget(#PB_Any,160,60,20,20,"0")
lg\gad[12]=TextGadget(#PB_Any,160,90,20,20,"100")
lg\gad[13]=TextGadget(#PB_Any,160,120,20,20,"100")
CloseGadgetList()
lg\top=0
lg\left=0
lg\right=100
lg\bottom=100
bg\gad[0]=ContainerGadget(#PB_Any,240,10,200,400,#PB_Container_Raised)
bg\gad[1]=TextGadget(#PB_Any,0,10,200,20,"BoxedGradient",#PB_Text_Center )
bg\gad[2]=TextGadget(#PB_Any,10,30,50,20,"X:")
bg\gad[3]=TrackBarGadget(#PB_Any,50,30,100,20,0,100)
bg\gad[4]=TextGadget(#PB_Any,10,60,50,20,"Y:")
bg\gad[5]=TrackBarGadget(#PB_Any,50,60,100,20,0,100)
bg\gad[6]=TextGadget(#PB_Any,10,90,50,20,"Width:")
bg\gad[7]=TrackBarGadget(#PB_Any,50,90,100,20,0,100):SetGadgetState(bg\gad[7],100)
bg\gad[8]=TextGadget(#PB_Any,10,120,50,20,"Height:")
bg\gad[9]=TrackBarGadget(#PB_Any,50,120,100,20,0,100):SetGadgetState(bg\gad[9],100)
bg\gad[10]=TextGadget(#PB_Any,160,30,20,20,"0")
bg\gad[11]=TextGadget(#PB_Any,160,60,20,20,"0")
bg\gad[12]=TextGadget(#PB_Any,160,90,20,20,"100")
bg\gad[13]=TextGadget(#PB_Any,160,120,20,20,"100")
CloseGadgetList()
bg\x=0
bg\y=0
bg\width=100
bg\height=100
eg\gad[0]=ContainerGadget(#PB_Any,450,10,200,400,#PB_Container_Raised)
eg\gad[1]=TextGadget(#PB_Any,0,10,200,20,"Circular/EllipticalGradient",#PB_Text_Center )
eg\gad[2]=TextGadget(#PB_Any,10,30,50,20,"X:")
eg\gad[3]=TrackBarGadget(#PB_Any,50,30,100,20,0,100):SetGadgetState(eg\gad[3],50)
eg\gad[4]=TextGadget(#PB_Any,10,60,50,20,"Y:")
eg\gad[5]=TrackBarGadget(#PB_Any,50,60,100,20,0,100):SetGadgetState(eg\gad[5],50)
eg\gad[6]=TextGadget(#PB_Any,10,90,50,20,"RadiusX:")
eg\gad[7]=TrackBarGadget(#PB_Any,50,90,100,20,0,100):SetGadgetState(eg\gad[7],50)
eg\gad[8]=TextGadget(#PB_Any,10,120,50,20,"RadiusY:")
eg\gad[9]=TrackBarGadget(#PB_Any,50,120,100,20,0,100):SetGadgetState(eg\gad[9],50)
eg\gad[10]=TextGadget(#PB_Any,160,30,20,20,"50")
eg\gad[11]=TextGadget(#PB_Any,160,60,20,20,"50")
eg\gad[12]=TextGadget(#PB_Any,160,90,20,20,"50")
eg\gad[13]=TextGadget(#PB_Any,160,120,20,20,"50")
CloseGadgetList()
eg\x=50
eg\y=50
eg\xrad=50
eg\yrad=50
cg\gad[0]=ContainerGadget(#PB_Any,660,10,200,400,#PB_Container_Raised)
cg\gad[1]=TextGadget(#PB_Any,0,10,200,20,"ConicalGradient",#PB_Text_Center )
cg\gad[2]=TextGadget(#PB_Any,10,30,50,20,"X:")
cg\gad[3]=TrackBarGadget(#PB_Any,50,30,100,20,0,100):SetGadgetState(cg\gad[3],50)
cg\gad[4]=TextGadget(#PB_Any,10,60,50,20,"Y:")
cg\gad[5]=TrackBarGadget(#PB_Any,50,60,100,20,0,100):SetGadgetState(cg\gad[5],50)
cg\gad[6]=TextGadget(#PB_Any,10,90,50,20,"Angle:")
cg\gad[7]=TrackBarGadget(#PB_Any,50,90,100,20,0,359):SetGadgetState(cg\gad[7],0)
cg\gad[8]=TextGadget(#PB_Any,160,30,20,20,"50")
cg\gad[9]=TextGadget(#PB_Any,160,60,20,20,"50")
cg\gad[10]=TextGadget(#PB_Any,160,90,20,20,"0")
CloseGadgetList()
cg\x=50
cg\y=50
cg\angle=0.0
ProcedureReturn #True
EndProcedure
If OpenWindow(0,0,100,1024,600,"Gradient-Test",#PB_Window_SystemMenu|#PB_Window_Normal)
If Init()
Repeat
If StartDrawing(WindowOutput(0))
DrawImage(ImageID(0),60,170)
DrawImage(ImageID(1),60,280)
DrawImage(ImageID(2),290,170)
DrawImage(ImageID(3),290,280)
DrawImage(ImageID(4),500,170)
DrawImage(ImageID(5),500,280)
DrawImage(ImageID(6),710,170)
DrawImage(ImageID(7),710,280)
StopDrawing()
EndIf
event=WaitWindowEvent()
If event=#PB_Event_Gadget
Select EventGadget()
Case lg\gad[3]:lg\top=GetGadgetState(lg\gad[3]):SetGadgetText(lg\gad[10],Str(lg\top))
Case lg\gad[5]:lg\left=GetGadgetState(lg\gad[5]):SetGadgetText(lg\gad[11],Str(lg\left))
Case lg\gad[7]:lg\right=GetGadgetState(lg\gad[7]):SetGadgetText(lg\gad[12],Str(lg\right))
Case lg\gad[9]:lg\bottom=GetGadgetState(lg\gad[9]):SetGadgetText(lg\gad[13],Str(lg\bottom))
Case bg\gad[3]:bg\x=GetGadgetState(bg\gad[3]):SetGadgetText(bg\gad[10],Str(bg\x))
Case bg\gad[5]:bg\y=GetGadgetState(bg\gad[5]):SetGadgetText(bg\gad[11],Str(bg\y))
Case bg\gad[7]:bg\width=GetGadgetState(bg\gad[7]):SetGadgetText(bg\gad[12],Str(bg\width))
Case bg\gad[9]:bg\height=GetGadgetState(bg\gad[9]):SetGadgetText(bg\gad[13],Str(bg\height))
Case eg\gad[3]:eg\x=GetGadgetState(eg\gad[3]):SetGadgetText(eg\gad[10],Str(eg\x))
Case eg\gad[5]:eg\y=GetGadgetState(eg\gad[5]):SetGadgetText(eg\gad[11],Str(eg\y))
Case eg\gad[7]:eg\xrad=GetGadgetState(eg\gad[7]):SetGadgetText(eg\gad[12],Str(eg\xrad))
Case eg\gad[9]:eg\yrad=GetGadgetState(eg\gad[9]):SetGadgetText(eg\gad[13],Str(eg\yrad))
Case cg\gad[3]:cg\x=GetGadgetState(cg\gad[3]):SetGadgetText(cg\gad[8],Str(cg\x))
Case cg\gad[5]:cg\y=GetGadgetState(cg\gad[5]):SetGadgetText(cg\gad[9],Str(cg\y))
Case cg\gad[7]:cg\angle=GetGadgetState(cg\gad[7]):SetGadgetText(cg\gad[10],Str(cg\angle))
EndSelect
EndIf
Draw()
Until event=#PB_Event_CloseWindow
EndIf
EndIf
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
@bizzl
Könntet Du dein Beispiel hier: http://www.purebasic.fr/german/viewtopi ... 599#254599
auch mal reinschmeissen?
Danke und Gruß
Thomas
Könntet Du dein Beispiel hier: http://www.purebasic.fr/german/viewtopi ... 599#254599
auch mal reinschmeissen?
Danke und Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 82
- Registriert: 08.09.2005 18:07
- Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit - Wohnort: Nordhessen - früher : Südniedersachsen
Antwort
@ts-soft:Ok,erledigt!
@iostream:Gerne, jederzeit wieder!
Werde das Programm dann nur noch hier:
http://www.purebasic.fr/german/viewtopi ... 599#254599
aktuell halten.
@iostream:Gerne, jederzeit wieder!
Werde das Programm dann nur noch hier:
http://www.purebasic.fr/german/viewtopi ... 599#254599
aktuell halten.