Leuchtkegelalgorithmus

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

rambo256

Betreff: Leuchtkegelalgorithmus

BeitragSo, Sep 12, 2004 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
kann sein das ich jetzt ein Brett vorm Kopp hab,aber es is ja noch früh Laughing
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
Wink
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

BeitragSo, Sep 12, 2004 11:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
alu.art-FX.org

rambo256

BeitragSo, Sep 12, 2004 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das ist mir schon klar,aber so peinlich es mir auch ist,ich bekomm einfach diese Blöde schleife dafür nicht hin Crying or Very sad
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

BeitragSo, Sep 12, 2004 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
http://blitzbase.de/befehle2d/atan2.htm

...
was willst du da mit einer zählschleife? wth
alu.art-FX.org

rambo256

BeitragSo, Sep 12, 2004 12:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaub du verstehst mich nicht oder ich dich nich Wink
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

BeitragSo, Sep 12, 2004 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
eine FillFunktion gibts im Codearchiv
alu.art-FX.org

rambo256

BeitragSo, Sep 12, 2004 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok,ich werd dann mal suchen gehen,schonmal danke Smile
Asus F53z

Das Leben ist eine reine Konkatenation...
 

Jaramia

BeitragSo, Sep 12, 2004 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/view...light=fill
alu.art-FX.org

rambo256

BeitragSo, Sep 12, 2004 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 12, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Crying or Very sad
Asus F53z

Das Leben ist eine reine Konkatenation...
 

Jaramia

BeitragSo, Sep 12, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 12, 2004 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Mad
Asus F53z

Das Leben ist eine reine Konkatenation...

BladeRunner

Moderator

BeitragSo, Sep 12, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Wink
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

BeitragSo, Sep 12, 2004 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 12, 2004 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich hab es jetzt endlich,aber alleine Wink
Musste vorher einen Kaffe trinken,damit ich Blödmann darauf komme... Laughing

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 Very Happy

@all danke für eure Hilfe Wink
Asus F53z

Das Leben ist eine reine Konkatenation...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Sep 12, 2004 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 12, 2004 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.
 

Dreamora

BeitragSo, Sep 12, 2004 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 12, 2004 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

BladeRunner

Moderator

BeitragSo, Sep 12, 2004 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group