Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.09.2007, 20:23

Ausfüllen von Dreiecken

Ich würd gern wissen wie man dreiecke ausfüllt.
Wenns geht mathematisch und keine Code bitte.
WACH AUF!
Du bist NICHT schlauer als Tiere!
Gehe hinaus und finde es heraus, warum es so ist.

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

2

16.09.2007, 20:25

mit was denn ausfüllen? farben, erdbeerbonbons oder leeren pizzaschachteln?
"Don't trust your eyes: They are a hell of a lot smarter than you are"

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

16.09.2007, 22:33

Google hilft:

http://en.wikipedia.org/wiki/Flood_fill
http://www.cse.ohio-state.edu/~gurari/course/cse693s04/cse693s04su77.html
@D13_Dreinig

4

17.09.2007, 10:51

Ich meine mit einer Farbe.
WACH AUF!
Du bist NICHT schlauer als Tiere!
Gehe hinaus und finde es heraus, warum es so ist.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

17.09.2007, 11:05

Dann les dich ein. Links hast du ja, obwohl du auch selbst hättest suchen können.
@D13_Dreinig

6

17.09.2007, 14:45

Mathematische Rechnungen bitte und NICHTS anderes. Das hier bringt mich kaum weiter. Oder Anweisungen (theorie). Aber nicht so was wie zufall zeichnen. Oder kurz um wie berechnet man den Ort der Fläche des Dreiecks (2D).
WACH AUF!
Du bist NICHT schlauer als Tiere!
Gehe hinaus und finde es heraus, warum es so ist.

Phili

unregistriert

7

17.09.2007, 14:54

Also wenn ich richtig versteh willst du ne Art Rasterizer haben.
Eine einfache Möglichkeit ist z.B. jeden Pixel in das Koordinatensystem des Dreiecks zu transformieren und dann zu Testen, ob der Punkt innerhalb liegt.
zum Beispiel:
gegeben:
-Dreieck ABC.
-Position des Pixels PixelPos

1.)
Matrix Mat=MatrixInvert(MatrixCoord(C-B, A-B)*MatrixTranslate(B));
2.)
Punkt PosRel=PixelPos*Mat;
3.)
wenn PosRelx>0 und PosRely>0 und (PosRelx+PosRely)<1
=>Punkt ist farbig

8

17.09.2007, 17:51

Bitte mathematisch keinen Code.
OK ein Anfang danke. Aber ging es nicht mit einer Rechnung? (Also ohne jeden Pixel im Koordinatensystem zu speicher[ist nämlich nicht die schnellste mögkichkeit, glaube ich, wenn doch dan sagt es mir])

Bsp: Auflösung 1280x1024

A ist auf Pixel 1280 und 1024
B ist auf Pixel 1280 und 0
C ist auf Pixel 0 und 0

PS: Bitte mal (wenn möglich nur eine Rechnung zeigen mit der man jeden Punkt im Dreieck herausfinden kann) im Viereck ist es ja einfach.
Bsp: Viereck
|von rechts nach links
|von unten nach oben
A 100 100
B 100 10
C 10 100
D 10 10

Punkte im Viereck:
Höhe 100 bis 10
Breite 100 bis 10

EDIT: man findet einfach heraus welcher Punkt der höchste, der tiefste, der am "rechtesten" und der am "linkesten" ist. Der Rest ist einfach.
WACH AUF!
Du bist NICHT schlauer als Tiere!
Gehe hinaus und finde es heraus, warum es so ist.

Phili

unregistriert

9

17.09.2007, 18:27

@Programmstein

Quellcode

1
OK ein Anfang danke. Aber ging es nicht mit einer Rechnung?

Als was würdest du das beschreiben, was ich vorhin gepostet hab?
Das war ein rein mathematischer Algorithmus, um für einen Punkt herauszufinden, ob er in einem Dreieck liegt.
Ein Viereck ist nicht im geringsten einfacher als ein Dreieck, auch wenn du offensichtlich übersehen hast, das nicht alle Vierecke ihre Seiten parakllel zum Koordinatensystem haben.
Ich weiß eigentlich auch nicht, was mich dazu bringt das jetzt nochmal REIN(auch deiner Definition nach) mathematische aufzuschreiben, aber gut, ich bin heut gut drauf:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
gegeben: 
-Pixel x, y
-Dreieck Ax, Ay, Bx, By, Cx, Cy

x=x-Bx
y=y-By
a=Cx-Bx
b=Cy-By
c=Ax-Bx
d=Ay-By
det=ad-bc

x'=(x*d+y*-c)/det
y'=(x*-b+y*a)/det

wenn x'>0 und y'>0 und x'+y'<1 dann liegt P innerhalb von ABC

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

17.09.2007, 18:52

http://www.google.at/search?hl=de&q=triangle+fill+algorithm&btnG=Suche&meta=
http://www.devmaster.net/articles/software-rendering/part4.php
http://www.gamedev.net/community/forums/topic.asp?topic_id=256968
http://www.engr.uky.edu/~lgh/ecetechnicalreports/csp97001TriFillAlg.pdf
.
.
.

hf

Werbeanzeige