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

24.08.2007, 22:29

n00b-pr0blem mit vektoren :-P

erst einmal hallo alle zusammen!

ich bin n hobbycoder (wie alle oder die meisten hier, denk ich mal), und bin in spielebereich noch ziemlich "frisch", dazu in punkto mathematik nich gerade ne leuchte..! naja, und genau deshalb hab ich jetzt folgendes problem:

aaaalso, ich bin in der zweidimensionalen welt, ich habe zwei linien, von denen ich den start- und endpunkt weiss. dazu kommt eine dritte linie, von der ich nur die länge weiss, dass sie senkrecht zur ersten linie ist, und dass die erste und zweite linie berührt! ich will also quasi die koordinaten einer linie wissen, die senkrecht zur ersten ist, und in einem bestimmten abstand zwischen der ersten und zweiten linie liegt! wie berechne ich jetzt die koordinaten dieser dritten linie?

wie gesagt, ich bin in mathematik nich gerade der hellste, von daher bitte nich mit dem finger auf mich zeigen und laut-hals auslachen..! :?

aber ich danke im voraus! :D

P.S: hoffentlich nich im falschen bereich geposted! :-P

2

24.08.2007, 23:32

ist nicht undebindgt möglich ... stell dir folgendes vor:
Linie 1 (10, 0) - (10, 100)
Linie 2 (100, 4) - (100, 64)
Länger der bindendenLinie: 90 ... doch wo soll die jetzt sein? Line 1 ist zu Linie 2 paralell, d.h. es gibt von 4 - 64 einen möglichen Schnittpunkt und dazu passend dann auf Linie 1 von 4 - 64 auch einen (Achtung! Hier auch nicht von 0 - 100, da die Linie nur exakt 90 lang ist... und dazu soll das Ding auch noch senkrecht sein ;) ) ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

3

24.08.2007, 23:50

hmmm...aba wenns doch 2 sich schneidende linien sind, muss es doch exakt einen schnittpunkt geben, an der die dritte linie die länge, sagen wir exakt 90 hat! und genau das will ich herausfinden. dazu kommt, dass sich die beiden linien nich einmal schneiden müssen...bei der schnittpunktberechnung muss man ja auch fälle, in denen sich strecken nicht schneiden können voraussehen! also dürfte das doch iwie kein problem sein! nur wie?? :-(

4

25.08.2007, 10:04

Nja du musst halt diesen Fall mit einbeziehen ... ich mein Parallelen schneiden sich in der Unendlichkeit ;)

Ne aber mal im ernst ... wenn sich die beiden gerdaden, wenn man sie verlängern würde, nie schneiden würden, gibt es auf keinen fall nur eine stelle an der der exakt 90 weg ist. Was wäre denn bsw bei folgendem:
Linie1(0, 0), (100, 100)
Linie2(100, 100), (0, 0)
So ... jetzt schneiden die sich ja genau in der Mitte ... damit hast du auf beiden Seiten die selben Längen ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

5

25.08.2007, 13:28

hm, naja, gut, aba sowas könnte man ja evtl. mit der diskriminante überprüfen...oder halt sowas in der richtung?! hatte mir halt sowas gedacht, dass ich einen punkt auf der ersten linie suche, der addiert mit der länge der dritten linie (mithilfe von richtungsvektoren, etc. --> negativer kehrwert der ersten linie?!? :-P) den punkt auf der zweiten linie ergibt, und so könnte ich dann quasi die koordinate auf der ersten linie berechnen. aber ehrlich gesagt, hab ich nich die leiseste ahnung, wie ich das zustande bringen soll...hab schon mal provisorisch ne gleichung aufstellen können, aba dann nen therm mit zwei variablen rausbekommen und blaaaa... naja, bei diesem beispiel wird vielleicht klar, was ich mein:

(Link)

in fällen wie diesem gibt es haargenau eine position für die dritte linie! (upps, hab grad gemerkt, dass das bild falsch is...der startpunkt von g1 [der kasten] müsste unterhalb sein...bitte einfach ignorieren ^^)

anyway, weiß nich mal, ob das mein eig. hauptproblem löst! :? ich will eine einfache 2.5D-engine bauen (á la doom I-II, marathon und duke nukem), und bin jetzt bei der kollisionsabfrage der wände. also, ganz klar, hab ein konvexes polygon, und möchte, dass sich der spieler in diesem polygon bewegen kann, und immer einen gewissen abstand (nämlich sein radius) zu den wänden behält.

(Link)

die kollisionsabfrage selbst hab ich hingekriegt, logisch, aba dann "zuckt" der spieler immer gegen die wand...ich komm einfach nich drauf, wie ich das lösen soll, dass der spieler so "sanft" wie in den bereits erwähnten spielen an der wand stehen bleibt...!

vielleicht jmd nen hinweis? :-) (ach ja, und bevor mir jetzt jmd ne open-source-engine anbieten will, ich bin REALbasic-programmierer ^^)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

25.08.2007, 13:46

Erst prüfen ob eine Kollision stattfindet und dann die Kamera bewegen! Dann sollte da nichts zucken!
@D13_Dreinig

7

25.08.2007, 14:21

joa, schon klar wasde meinst. aba ich setz die kamera sowieso erst genau vor dem neuzeichnen der szene...das problem is eher, dass ich erst prüfe, ob sich die wege des spielers mit der wand "kreuzt" (linie1 = wand, linie2 = spielerbewegung, angefangen von seiner letzten pos. bis zu seiner "geplanten" pos.), und ERST WENN DAS DER FALL IST, wird der spieler ausgegangen von dem schnittpunkt senkrecht zur wand in entfernung seines radiuses "weggestellt"...klar soweit?! :p wahrscheinlich is der ganze ansatz falsch...

der witz is ja, dasses schon genug open-source-engines gibt, wie eben die von doom I-II, marathon und duke nukem, von denen ich mir etwas abgucken könnt...nur versteh ich leider kein c/c++! :?

Werbeanzeige