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)
-
- 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.