Box() ist schneller.Tombi hat geschrieben:Wegen dem "dicken des Rahmens" - wäre da jetzt die normale Linien-Funktion besser oder doch lieber die Box Funktion (nur Rahmen)?
Nicht gefüllte Box
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Windows 10 Pro, 64-Bit / Outtakes | Derek
c4s hat geschrieben:Ich hab dann noch eine zusätzliche Frage dazu:
Gibt es eine (einfache) Möglichkeit die Dicke der Linien bei eben der Box
oder einer Linie selbst einzustellen?
Code: Alles auswählen
DrawingMode(#PB_2DDrawing_Outlined)
For i=0 To fat-1
Box( x+i, y+i, w-i*2, h-i*2, $00ff00)
Next
Code: Alles auswählen
Box( x+i, y+i, w-i*2, h-i*2, $00ff00) ; nach innen
Box( x-i, y-i, w+i*2, h+i*2, $00ff00) ; nach außen
Code: Alles auswählen
If OpenWindow(0, #PB_Ignore,#PB_Ignore,640,480, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10,10,80,24,"BOX")
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 0
DC = StartDrawing(WindowOutput(0))
Pen = CreatePen_(#PS_SOLID,4,$FF0000)
OldPen = SelectObject_(Dc,Pen)
DrawingMode(#PB_2DDrawing_Outlined)
Box(100, 100, 40, 40, #Null)
SelectObject_(Dc,OldPen)
DeleteObject_(Pen)
StopDrawing()
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
Gruss Andreas
sacht ma wie is das mit komma zahlen??
also zumbeispiel 0,1 also ich wollte ei n kreis der sich um 0,1 vergrößert also
Mfg MAX
also zumbeispiel 0,1 also ich wollte ei n kreis der sich um 0,1 vergrößert also
Code: Alles auswählen
InitSprite()
InitKeyboard()
Radius = 400
Radius1 = 1
ScreenX = 1280
ScreenY = 1024
OpenScreen(ScreenX,ScreenY,16,"XXX")
Repeat
ClearScreen(255+256*255+256*256*255) ;weiss
StartDrawing(ScreenOutput())
FrontColor(0+256*0+256*256*0) ;schwarz
Circle(ScreenX/2,ScreenY/2,Radius) ;groß
FrontColor(255+256*255+256*256*255) ;weiss
Circle(ScreenX/2,ScreenY/2,Radius1) ;klein
Radius + 1
Radius1 + 1 ; der soll aber nun nur um 0,1 größer werden!!!
If Radius > ScreenX
Radius = ScreenX
EndIf
StopDrawing()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(1)-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ganzzahlen kannst du nicht um bruchzahlen erhöhen!
der standard-datentyp ist LONG, das ist ein 32bit Integer.
du musst schon Float oder Double nehmen, wenn du mit kommazahlen arbeiten willst.
PB -> Help -> Allgemeine Themen -> Variablen, Typen und Operatoren
oder, in diesem Fall, nimm Fixkomma:
der standard-datentyp ist LONG, das ist ein 32bit Integer.
du musst schon Float oder Double nehmen, wenn du mit kommazahlen arbeiten willst.
PB -> Help -> Allgemeine Themen -> Variablen, Typen und Operatoren
oder, in diesem Fall, nimm Fixkomma:
Code: Alles auswählen
;...
Radius1 = 10
;...
Circle(ScreenX/2,ScreenY/2, Radius1/10 ) ;ein zehntel verwenden
;...
Radius1 + 1 ; so wird er effektiv nur um 0,1 größer!Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.

