OvalRect

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheProgrammer

Betreff: OvalRect

BeitragSo, Jun 27, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Ich hab mal kurz ne kleine Funktion geschrieben,
mit der man ein Rect mit abgerundeten Ecken
zeichnen kann.

Es ist zwar nichts Weltbewegendes, aber ich
dachte mir, sowas fehlt noch als Zeichenmöglichkeit.

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()
AppTitle "Rect mit abgerundeten Ecken"

size = 50

While Not KeyHit(1)
Cls
Text 0,0,"Halte die Maus gedrückt und bewege sie!"
Text 0,20,"Größe: "+size+" (< > zum Verändern)"

If size > 0 And KeyDown(203) Then size = size - 1
If size < 100 And KeyDown(205) Then size = size + 1

If MouseDown(1) Then
n = n + 1
If n = 1 Then
x = MouseX()
y = MouseY()
EndIf
Else
n = 0
EndIf

If n > 0 Then
OvalRect x,y,MouseX()-x,MouseY()-y,size
EndIf

Flip
Wend
End

Function OvalRect(x,y,width,height,size)


If width > 0 And height > 0 Then

If width/2 < size Then size = width/2
If height/2 < size Then size = height/2

width2 = width-(2*size)
height2 = height-(2*size)

Rect x+size,y,width2,1
Rect x,y+size,1,height2
Rect x+size,y+height,width2,1
Rect x+width,y+size,1,height2

For I = 0 To 90
Rect (x+size)+Cos(I-180)*size,(y+size)+Sin(I-180)*size,1,1
Rect (x+width-size)+Cos(I-90)*size,(y+size)+Sin(I-90)*size,1,1
Rect (x+size)+Cos(I+90)*size,(y+height-size)+Sin(I+90)*size,1,1
Rect (x+width-size)+Cos(I)*size,(y+height-size)+Sin(I)*size,1,1
Next

EndIf

End Function
aktuelles Projekt: The last day of human being

Hubsi

BeitragSo, Jun 27, 2004 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht ganz brauchbar aus, den Speed hab ich jetzt nicht getestet. Ein optionales Füllen hinter size wär noch praktisch Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

TheProgrammer

BeitragSo, Jun 27, 2004 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
So:

Mit der Leertaste kann man nun füllen.

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()
AppTitle "Rect mit abgerundeten Ecken"

size = 50

While Not KeyHit(1)
Cls
Text 0,0,"Halte die Maus gedrückt und bewege sie!"
Text 0,20,"Größe: "+size+" (< > zum Verändern)"
Text 0,40,"Gefüllt: "+fuell+" (Leer - Wechseln)"

If KeyHit(57) Then fuell=1-fuell

If size > 0 And KeyDown(203) Then size = size - 1
If size < 100 And KeyDown(205) Then size = size + 1

If MouseDown(1) Then
n = n + 1
If n = 1 Then
x = MouseX()
y = MouseY()
EndIf
Else
n = 0
EndIf

If n > 0 Then
OvalRect x,y,MouseX()-x,MouseY()-y,size,fuell
EndIf

Flip
Wend
End

Function OvalRect(x,y,width,height,size%=50,mode%=1)


If width > 0 And height > 0 Then

If width/2 < size Then size = width/2
If height/2 < size Then size = height/2

width2 = width-(2*size)
height2 = height-(2*size)

If mode = 0 Then

Rect x+size,y,width2,1
Rect x,y+size,1,height2
Rect x+size,y+height,width2,1
Rect x+width,y+size,1,height2

For I = 0 To 90
Rect (x+size)+Cos(I-180)*size,(y+size)+Sin(I-180)*size,1,1
Rect (x+width-size)+Cos(I-90)*size,(y+size)+Sin(I-90)*size,1,1
Rect (x+size)+Cos(I+90)*size,(y+height-size)+Sin(I+90)*size,1,1
Rect (x+width-size)+Cos(I)*size,(y+height-size)+Sin(I)*size,1,1
Next

EndIf

If mode = 1 Then
Rect x+size,y+size,width2,height2,1

Oval x+width-size*2,y,size*2,size*2,1
Oval x,y,size*2,size*2,1
Oval x,y+height-size*2,size*2,size*2,1
Oval x+width-size*2,y+height-size*2,size*2,size*2,1

Rect x+size,y,width2,size
Rect x,y+size,size,height2
Rect x+size,y+height-size,width2,size
Rect x+width-size,y+size,size,height2

EndIf

EndIf

End Function
aktuelles Projekt: The last day of human being

Hubsi

BeitragSo, Jun 27, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt ist gut. Klatsch, klatsch, klatsch... Mr. Green
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Ensign Joe

BeitragSo, Jun 27, 2004 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hoffen wir mal dass dieses "Feature" bei BlitzMax dabei ist Smile
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile

dominik

BeitragSo, Jun 27, 2004 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
und du kaufst es dir dann für 2000 - 8000 euro? (verdamt warum erkennt des teil kein e + altgr)
haha Mad

sbrog

BeitragSo, Jun 27, 2004 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso malst du die runden ecken mit rect ?
Benutze doch writepixel oder plot
 

Edlothiol

BeitragSo, Jun 27, 2004 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
dominik hat Folgendes geschrieben:
und du kaufst es dir dann für 2000 - 8000 euro? (verdamt warum erkennt des teil kein e + altgr)
haha Mad
BlitzMax soll 2000 - 8000 Euro kosten? Das kann ich irgendwie nicht glauben. Warum sollte das mehr kosten als z.B. das gesamte Visual Studio Enterprise Architect? Fände ich seltsam (besser, INpac? Wink ).
  • Zuletzt bearbeitet von Edlothiol am Mo, Jun 28, 2004 8:18, insgesamt 2-mal bearbeitet
 

INpac

BeitragSo, Jun 27, 2004 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ot: man beachte meinen hinweis bezüglich komisch - seltsam in meiner sig, Edlothiol Smile

ont: 1. mit writepixelfast wäre das wirklich etwas schneller Smile
2. das in bmax? bitte leute, seit nicht so verwöhnt!

dominik

BeitragSo, Jun 27, 2004 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hab nur das hier mal irgentwo im forum gelesen:


3ds max kostet in der aktuellen Version um die 4500 Euro.
Maya Unlimited liegt bei etwas über 8000 Euro, Maya Complete liegt bei 2000 Euro.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group