fläche füllen[neues prob]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: fläche füllen[neues prob]

BeitragDo, Sep 20, 2007 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leute,

Könnt ihr mir sagen, wie ich z.b ein fünfeck füllen kann, wenn ich nur die Eckpunkte kenne?
Mit kreisen oder so, kann man das bestimmt irgendwie machen.Oder mit writepixelfast.
Könnt ihr mir sagen, wie ich das am besten machen kann?


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
  • Zuletzt bearbeitet von mas93 am Do, Sep 20, 2007 17:33, insgesamt einmal bearbeitet
 

Dreamora

BeitragDo, Sep 20, 2007 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du mathematisch feststellst ob du noch in der Fläche bist und wenn ja wird der Pixel mit Writepixel oder WritePixelFast ausgefüllt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Smily

BeitragDo, Sep 20, 2007 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Indem du mathematisch feststellst ob du noch in der Fläche bist und wenn ja wird der Pixel mit Writepixel oder WritePixelFast ausgefüllt.

entweder das, oder du zeichnest die umrisse und nutzt dann eine Rekursive Füllroutine

(Lockbuffer, mit ReadPixelfast prüfen, ob der Pixel die Granzfarbe hat, wenn nicht mit Writepixelfast den Pixel malen und die funktion für die angrenzenden Pixel aufrufen)
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, Sep 20, 2007 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn das Fünfeck komplett konvex ist, kannst du es auch einfach in Dreiecke zerlegen und diese dann füllen.
Dafür haben wir, glaube ich, sogar eine Funktion im Codearchiv.

Liegen allerdings konkave Ecken vor ist das ganze nicht mehr ganz so einfach.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

mas93

BeitragDo, Sep 20, 2007 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ja,
mein problem ist eher, herrauszufinden, auf welchen köördinaten der rand ist.

Also wenn ich die 5 punkte eines 5 ecks habe, wie ich dann die randkoordinaten rausfinde.


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Smily

BeitragDo, Sep 20, 2007 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
mas93 hat Folgendes geschrieben:
hmm ja,
mein problem ist eher, herrauszufinden, auf welchen köördinaten der rand ist.

Also wenn ich die 5 punkte eines 5 ecks habe, wie ich dann die randkoordinaten rausfinde.


mfg
mas93


was genau möchtest du wissen?
Der Rand ist eine Linie (bzw mehrere) und ist nicht durch eine koordinate definiert, sondern durch start- und endpunkt. Und die weist du ja berreits.

Brauchst du etwa alle Punkte, aus die die Linie besteht in einem Array oder so? oO
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

mas93

BeitragDo, Sep 20, 2007 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, ich hab mich jetzt entschieden, dass ich es mit 3-ecken fülle.
Mein problem ist aber, welche Punkte ich immer jeweils für ein 3eck nehmen soll, dass es ganz gefüllt wird.

Ich habe ja 5 punkte.
Wenn ich jetzt aus den 1. 3 ein dreieck mache und dann vom 3. punkt bis zum 5. Punkt wieder eins, dann bleibt ja am schluss die mitte leer.

Die muss ich dann ja auch noch füllen.
Also welche punkte muss ich da wie verwenden, dass da kein loch bleibt?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Smily

BeitragDo, Sep 20, 2007 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht nutzt du mal deinen eigenen Kopf.. auf sowas kommt man ohne große überlegungen auch von allein... und wenn nicht nimm dir ein blatt papier und versuchs
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

mas93

BeitragDo, Sep 20, 2007 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, ich finde aber gerade den thread nicht mit der 3-eck füllroutiene.
Kann mir da einer den link posten?

Ich hab schon nach 3-eck füllen gesucht hab aber nix gefunden

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

D2006

Administrator

BeitragDo, Sep 20, 2007 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann hör bitte auf.

Wie willst du denn sowas hier hinkriegen, wenn du es noch nichtmal schaffst "dreieck" in der erweitereten Suche einzugeben, dann "nur im Titel suchen" und "im Codearchiv suchen" anzuklicken?

Rolling Eyes
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Smily

BeitragDo, Sep 20, 2007 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wegedit: ok vergiss es ^^ Dee hat es berreits gesagt
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

mas93

BeitragDo, Sep 20, 2007 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Tut mir leid leute,
Ich sitz heute i-wie auf der leitung Sad

Habs gefunden.Ich depp hab vergessen and zwischen die wörter in der Such funktion zu schreiben


mfg
mas93

Tut mir leid

[EDIT]

so, ich wollte jetzt mal mein 5eck aufteilen.
Aber i-wie wird das noch nix.

Ich habe es so probiert, es wird aber nix angezeigt:

Code: [AUSKLAPPEN]

Type vertex
   Field x
   Field y
   Field group
End Type

Type dreieck
   Field x1,y1
   Field x2,y2
   Field x3,y3
End Type

v.vertex=New vertex
v\x=10
v\y=5
group=1

v.vertex=New vertex
v\x=5
v\y=10
group=1

v.vertex=New vertex
v\x=20
v\y=10
group=1

maketri()

;---------------------MAIN--------------------------

Repeat
   
   For d.dreieck=Each dreieck
      filltri(d\x1,d\y1,d\x2,d\y2,d\x3,d\y3,255,0,0,0,0,255)
      Text 20,20,"d\x1"+d\x1
   Next
   
   Flip
   Cls
Until KeyHit(1)


;---------------------Functions-------------------

Function maketri()
   For v.vertex=Each vertex
      For i=1 To 2
         If v\group=i Then
            xeins=v\x
            yeins=v\y
            d.dreieck=After d
            xzwei=v\x
            yzwei=v\y
            d.dreieck=After d
            xdrei=v\x
            ydrei=v\y
            
            d.dreieck =New dreieck
            d\x1=xeins
            d\x2=xzwei
            d\x3=xdrei
            d\y1=yeins
            d\y2=yzwei
            d\y3=ydrei
         EndIf
      Next
   Next
End Function


Ich glaube, ich hab i-wie den Befehl after falsch benutzt -.-

wäre nett wenn ihr mir helfen könntet.
mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group