Circle Function -> Kreisausschnitte zeichnen
Übersicht

![]() |
ToeBBetreff: Circle Function -> Kreisausschnitte zeichnen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meine Function die ich vorstellen möchte : Circle
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() w = 50 h = 100 HidePointer() Repeat Color Rand(255),Rand(255),Rand(255) For I = 1 To 360 For o = 0 To 3 st = -ATan2(MouseX()-(100+(o*150)),MouseY()-100)+180 Circle 100+(o*150),100,w,h,st,i,o Next a =(a + 1 )Mod 11 b#=(b#+ 0.9)Mod 11 Circle MouseX()-10,MouseY()-10,20,20,b*36,a*36,2 Flip Delay 10 Cls If KeyHit(1) Then End Next w = Rand(20,100) h = Rand(20,100) Until KeyHit(1) End Function Circle(x,y,width,height,st,en,m=0) For i = 0 To en Plot x+Sin(-(i+(st+180)))*width,y+Cos(-(i+(st+180)))*height Next Select m Case 1 Line x,y,x+Sin(-(en+(st+180)))*width,y+Cos(-(en+(st+180)))*height Line x,y,x+Sin(-(0+(st+180)))*width,y+Cos(-(0+(st+180)))*height Case 2 For ii# = 0 To en Step 0.02 Line x,y,x+Sin(-(ii+(st+180)))*width,y+Cos(-(ii+(st+180)))*height Next Case 3 Plot x,y Text x,y,en+"°",1,1 End Select End Function Legende x = x Position y = y Position width = Breite der Ovals height = Höhe des Ovals st = Start Winkel der kreises en = End winkel der kreises m = Modus (0 = Leerer Kreis;1 = Kreis mit Enden(Pizza);2 = Ausgefüllter Kreis;3 = GradAnzeige in der Mitte Viel spaß und ich freue mich über ein feedback ! mfg Crack93 ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir ruckelt das ab 250° ganz stark... gibts davon auch ne amd64 Variante, die würde bei mir besser laufen ![]() |
||
Starfare: Worklog, Website (download) |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä ? sry aba wasis amd64 ?
mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ganze ist leider nur bedingt echtzeittauglich, und noch dazu etwas ungenau, da du über die Step-Angabe in deiner For next versuchst alle Punkte zu erreichen. Bei sehr großen Kreisen wird auch .02 nicht ausreichend fein sein und es wird Fehlpixel geben, bei kleineren Durchmessern werden unzählige lienien mehrfach gezogen. Ich würde An deiner Stelle einen anderen Weg wählen um den Kreisrand zu berechnen und dann eine Flutfüllung durchführen, das sollte um ein mehrfaches schneller sein. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also du meinst sowas wie
Code: [AUSKLAPPEN] For i = radius to 0 Step -1
MachenenKreis(i) Next So macht der den kreis immer enger bis zu null... geht das ? mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gerade die For-Next schleifen solltest du meiden...
Also bei mir hängts total...naja ok hab auch nicht den besten PC ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Folgende Zeile ist ein wirkliches Gräul:
Code: [AUSKLAPPEN] For ii# = 0 To en Step 0.02
Da ich es selber wissen wollte, habe ich mal wieder mein Kopf ein bisschen angestrengt und raus gekommen ist folgender Testcode: Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer FrontBuffer() radius#=100 xp=200 yp=200 Oval xp-3,yp-3,7,7,0 For x#=0 To radius Step 1 ac#=ACos(x/radius) Plot xp+x/radius*100,yp+Sin(ac)*radius Next WaitKey Ich denke das dieser selbsterklärend ist. Eine Füllroutine kannst du dir dann mit den schnellen Recht x,y,xs,ys,1 machen. Dann wäre das ganz auch schon nahezu Echtzeittauglich. edit1: Hier nochmal überarbeitet und mit Füllroutine: Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer FrontBuffer() radius#=200 xp=200 yp=200 For x#=0 To radius Step 1 wt%=Sin(ACos(x/radius))*radius Rect xp+x,yp-wt,1,wt*2,1 Rect xp-x,yp-wt,1,wt*2,1 Next WaitKey |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weder das von Crack noch das von Hectic sind zu gebrauchen.
Hab bei meinen Dreiecken auch lange gegrübelt, wie ich das doch lösen könnte, doch wie euch beiden ist mir bis jetzt nix schnelles eingefallen... kommt aber noch! ![]() |
||
MFG Darren |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä? Nicht schnell genug? Wie schnell willst du das denn mit 2D-Befehlen auf BB-Bordmitteln denn noch haben? ![]() Hier ein Geschwindigkeitstest (mit dem Mausrad kannst du den Radius verändern): Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() radius#=200 xp=200 yp=200 While Not KeyHit(1) xp=MouseX() yp=MouseY() radius=radius+MouseZSpeed()*10 For x#=0 To radius Step 1 wt%=Sin(ACos(x/radius))*radius Rect xp+x,yp-wt,1,wt*2,1 Rect xp-x,yp-wt,1,wt*2,1 Next Text 20,20,fps:msc=MilliSecs() If msc=>mts mts=msc+1000:fps=frm:frm=1 Else frm=frm+1 Flip 0 Cls Wend End Du kannst aber mit Step 2 und Rect -Breite 2 etwas an Geschwindigkeit gewinnen, aber dabei auch an Qualität verlieren. edit2: Solltest du tatsächlich das unmögliche geschafft haben, so zeigst du hier die Lösung, ja? edit1: Ausser du suchst was anderes als gefüllte Kreise... |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat jetzt nur nichts mehr mit Kreisausschnitten zu tun, oder? | ||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group