Leuchtkegelalgorithmus
Übersicht

![]() |
rambo256Betreff: Leuchtkegelalgorithmus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
kann sein das ich jetzt ein Brett vorm Kopp hab,aber es is ja noch früh ![]() also ich suche einen "ALgorithmus" womit ich z.b. die Kegel aufstellen kann, also so was: Code: [AUSKLAPPEN] ...........................
......................... ....................... ..................... ................... ................. ............... ............. ........... ......... ....... ..... ... . Ich hoffe ihr versteht es jetzt,was ich meine ![]() Ich hab schon die Suche benutzt aber nichts gefunden. Ich brauche diesen "Alogrithmus" damit ich einen schönen Leuchtkegel berechnen kann. Wäre sehr dankbar für eure Hilfe! THX! |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das sollte mit ATan kein Problem sein. Du hast einen Bezugspunkt (z.B. den Spieler) und mit ATan zwei Seiten vom Dreieck. Demnach ist das Dreieck eindeutig nach SWS konstruierbar ![]() |
||
alu.art-FX.org |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja das ist mir schon klar,aber so peinlich es mir auch ist,ich bekomm einfach diese Blöde schleife dafür nicht hin ![]() Kannst du oder irgend ein anderer mir nicht mal kurz diese For-next schleife posten,wäre sehr nett. |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
http://blitzbase.de/befehle2d/atan2.htm
... was willst du da mit einer zählschleife? wth |
||
alu.art-FX.org |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaub du verstehst mich nicht oder ich dich nich ![]() Ich benutze Writepixelfast also muss ich dann das dreieck mit pixeln füllen und dafür brauche ich solch eine schleife. |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
eine FillFunktion gibts im Codearchiv | ||
alu.art-FX.org |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok,ich werd dann mal suchen gehen,schonmal danke ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
https://www.blitzforum.de/view...light=fill | ||
alu.art-FX.org |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich auch schon gefunden,nur ist das nur für Kreise,dann müsste ich das für ein Dreieck komplett umschreiben. | ||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich denke,das es auch noch einen einfacheren Weg geben muss.
Und zwar mit einer ganz simplen For-next schleife. Also z.b. irgendwie so etwas: Code: [AUSKLAPPEN] For x = 0 to 60 For y = x to 60 next next Das problem dabei ist,das nur eine Schräge entsteht,und nicht zwei,die sich zu einem Kegel ergänzen ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, ich erklär dir jetzt mal was deine zählschleife machen muss, den rest musst du ja nun selbst rausfinden..
du hast also nun die umrisse des dreiecks. die eck-koordinaten kannst du ja miteinander verbinden, sagen wir in rosa. dann fangen wir an einer spitze vom dreieck an, von der wir wissen, das sie in das dreieck gehört. dann parsen wir die umgebung von diesem pixel ab: 001 0D1 000 So, wenn also ein Pixel in der Nachbarschaft auch Rosa ist (1) dann merken wir uns seine position vor und arbeiten den hinterher wieder durch und haken ihn dann ab, bis bei jedem pixel in der umgebung 0 ist. |
||
alu.art-FX.org |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhhh...
Meine Idee wäre,das sagen wir mal die Basis des Dreiecks ist 60 Pixel lang. Die steigung ist -1 bzw. 1 (wegen den zwei seiten) /\ / \ /__\ So dann ist mein Hauptanliegen einfach so,das die Schleife von unten anfängt,da ist die Breite ja 60,dann verkleinert sich die Breite auf 58.Also dann soll er einen weiter rechts anfangen und dann einen weiter links aufhören.bis er die maximale Höhe 60 erreicht hat. die schleife soll dann einfach von links nach rechts dieses Dreieck zeichnen. Das klingt eigentlich simpel,oder? Nur wie das jetzt umsetzen.Ich sitz bestimmt schon ne stunde daran. Irgendwie muss ich doch ein Brett vorm Kopp haben ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast dir die Antwort im Prinzip schon selbst gegeben.
Zerleg das Problem in Schritte als ob du derjenige wärst der sie Ausführen muss: Du beginnst an der Spitze des Kegels. Deren position(linkerrand=x,y;rechterrand=x,y) kennst du. Du malst einen Punkt. nun gehst du eine Zeile tiefer(y=y+1). Hier musst du einen Punkt früher anfangen ztu malen und einen später aufhören. Das merkst du dir (linkerrand=linkerrand-1,rechterrand...etc.).Nun machst du eine schleife zw. linkem und rechtem Rand unf malst alle Punkte. Das wiederholst du solange bis dein Kegel tief genug ist. C´est ca. War doch nit schwierig, oder. Immer schön denken wie dein Computer das machen muss und schon wird es... ![]() |
||
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 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo aufgrund deiner beschreibung muss da ein halbes holzhaus vor dem Kopf sein
Steigung 1 / -1 -> Loop y = 0 - 59 ( unten nach oben ) loop x = 0 - ceil( y / 2 ) zeichne pixel wäre zum beispiel eine möglichkeit |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ich hab es jetzt endlich,aber alleine ![]() Musste vorher einen Kaffe trinken,damit ich Blödmann darauf komme... ![]() Hab das jetzt so gelöst: Code: [AUSKLAPPEN] For y = by To 0 Step -1
For x = by-y To y+(bx-by) Step 1 bx,by = breite bzw. höhe jetzt muss ich nur noch machen,das er dann die Steigung sich selber errechnet und dann funzt es ![]() @all danke für eure Hilfe ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab da mal was simples gestrickt:Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() For x= 0 To 750 For y = x*-1/4 To x/4 Plot x ,y+300 Next Next Flip WaitKey End |
||
[BB2D | BB3D | BB+]
|
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Was ist das gegenteil von "True"? Natürlich "False"! In der Computersprache ist Wahr 1 und Unwahr -1.
Wär mal was neues mit falsch -1. Es ist lediglich das Gegenteil der Zeichnungsrichtung "1". In der Computersprache ist 0 falsch und ungleich 0 wahr. Gibt jedoch Sprachen die es auf 0 falsch und 1 richtig bzw 0 falsch und grösser 0 richtig beschränken. PS: Dies soll kein Angriff oder derartiges sein, es soll nur viele Probleme verhindern, die aufkommen wenn die Leute True = 1, False = -1 lernen sollten aus dem Posting. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ShadowTurtle hat Folgendes geschrieben: In hochsprachen wie z.B. c++ ist false -1
Das stimmt für MS Visual C++, wenn du aber zB den GNU-Compiler benutzt ist Dreamoras Aussage korrekt. EDIT: War mit MS Visual Basic durcheinandergeraten, da geben Boolsche operationen 0=False und -1=True aus (wenn ich meiner Literatur trauen kann...). Nichtsdestotrotz kenne auch ich Dreamoras Definition des Ganzen: Allgemein: 0=false <>0 =True. Werde jetzt keine Diskussion darum starten, es ist mir ehrlich gesagt nämlich sch...egal. Rambo hat sein Problem gelöst, das zählt. |
||
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 |
- Zuletzt bearbeitet von BladeRunner am So, Sep 12, 2004 21:41, insgesamt einmal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group