Funktion für Abstandsänderungsfaktor

C

Crymes

Guest
Funktion für Abstandsänderungsfaktor

Hi,
Schreib mir grad ein neues Programm in dem ich Abstände von einem Punkt zu einer Gerade vergleichen muss.
Jetzt brauch ich eine Funktion, die mir den Faktor beschreibt, um wieviel ich den aktuellen Abstand multiplizieren muss um den nächsten herauszubekommen.
Beispiel: Ich drehe eine Halbgerade von einem Punkt aus mit Schritten von einem Grad. Als Abstände zu einer anderen Gerade ergeben sich:

436
451
467
484
503

Entfernungseinheiten.

Der Änderungsfaktor, den ich durch eine Funktion bestimmen will wäre z.B. :
1.034
1.035
1.036
1.039

Habt ihr eine Idee wie ich das angehen muss?
Ganzrationale haben das Problem, dass sie nie unendlich werdne und auch in den negativen Bereich gehen.
 
AW: Funktion für Abstandsänderungsfaktor

hmm, erstmal: 2D oder 3D? weil im 2D raum gibts ja ned soviele möglichkeiten:
- entweder sie schneiden sich -> Abstand = 0
- oder sie laufen parallel -> Abstand = punkt-gerade problem
(- mit der halbgerade ergäbe sich wohl noch ein 3. punkt, dass die halbgerade von der geraden wegführt. ne normale gerade würde die 2. gerade ja dennoch schneiden (beidseitig unbegrenzt), bei ner halbgeraden fällt das im zweifelsfalle flach, da sie genau in schnittrichtung begrenzt ist. dann würde es aber wie im 2. falle enden: der ausgangspunkt der halbgeraden wäre dann die kürzeste entfernung...)

daher geh ich mal von 3D aus mit windschiefen geraden. hab hierzu mal folgenden link gefunden: Abstand Gerade von Gerade (Vektorrechnung) - rither.de

also grundsätzliche vorgehensweise:
- aus den richtungsvektoren beider geraden eine ebene zusammen zimmern
- und hier dann ebene-punkt-abstand berechnen (also gerade 1 gibt "höhe" der ebene an, ebene 2 liegt aber drüber/drunter und ist parallel zur ebene. also kann man sich jeden beliebigen punkt (der anfangspunkt der halbgerade wäre uns ja bekannt und wohl geeignet ^^) wählen und den abstand zur eben erechnen.

so WIE das jetz genau geht, müsst ich selber nochma lesen ><
aber vllt ist das ja schonmal ein anhaltspunkt für dich.
 
Es ist 2D.
Das Problem ist nicht den Schnittpunkt zu berechnen, das hab ich schon implementiert und eine kleine Demo funktioniert auch schon.
Meine Gerade dreht sich vin einem Punkt aus mit Schritten von einem Grad.
Das Problem ist, den nächsten Abstand vorauszusagen.
Beispiel: bei 30 Grad hab ich die Entfernung von 50, wie weit ist es bei 31 Grad ?
 
AW: Funktion für Abstandsänderungsfaktor

hmm, also du hast ne fest begrenzte strecke? oder wie? mach mir grad echt probs, das szenario vorzustellen ^^ hier mal nen versuch einer interpretation:
geraden-bsp.png

das wär atm das einzige, was irgendwie sinn machen würde ^^ könntest du dann nicht eher "intern" einen kreis bauen und je nach winkel einen punkt darauf bestimmen und dann punkt-gerade-abstand errechnen? um dann vorherzusagen, wie weit der nächste entfernt ist, machst du die rechnerei einfach nochmal mit nem grad mehr.
 
AW: Funktion für Abstandsänderungsfaktor

Im Anhang hab ich mal eine Zeichnung (Libre Office rockt :daumen: ) .
Es geht mir um eine Funktion (mathematische wie z.B. f(x) = 2x, nicht programmiertechnische), die mir z.B. den Abstand a2 ausrechnet wenn der Winkel und a1 gegeben sind.
Im ersten Post hab ich ja noch ein Beispiel mit Werten und Abstandsfaktoren stehen.
 

Anhänge

  • Geradenabstand.pdf
    14,2 KB · Aufrufe: 92
AW: Funktion für Abstandsänderungsfaktor

ich hab mir jetzt 5 Minuten lang die zeichung angeguckt und verstehe ehrlich gesagt immer noch nicht die aufgabenstellung. wenn ich die Zeichnung richtig interpretiere: tan(alpha)=a2/a1, also a2=a1*tan(alpha


edit: ich hab mir die grafik nochmal angeguckt und bin zu dem schluss gekommen, dass tan wohl nicht das ist, was du brauchst
 
Zuletzt bearbeitet:
AW: Funktion für Abstandsänderungsfaktor

ach du meinst die abstände zwischen den schnittpunkten beider linien xD

gab es nich ne möglichkeit, aus einer reihe von werten eine funktion abzuleiten? dächte, sowas schonmal gehört zu haben. meine grundidee: deine abstands-striche da unten drunter mal senkrecht auf die x achse "gestellt" quasi immer im abstand "winkel-änderung". also wenn du den winkel immer um 1° änderst, dann währen die striche also immer im abstand von 1 (x wächst jedesmal um 1). und ihre höhe wäre dann der dazugehörige y-wert.

im groben lässt sich mit fantasie eh schon irgendwie ne parabel-förmige kurve ableiten, nur mit welchen parametern wäre dann interessant.

OHA! Zu einer Parabel die Funktionsgleichung bestimmen - OnlineMathe - das mathe-forum

brauchst nen scheitelpunkt (also einfach 0|0) und einen beliebigen weiteren punkt (also bspw halt den abstand in einem grad -> x=1 mit entsprechendem y-wert (der abstand zw 0° und 1° szs). wenn du die funktion hast -> einfach mal testen, ob du die anderen werte nachvollziehen kannst damit. wenn ja: dann kannst du einfach für x deinen gewünschten winkel in die funktion einsetzen und bekommst den entsprechenden abstand heraus :)

wenn... :ugly:
 
AW: Funktion für Abstandsänderungsfaktor

und crymes - was kam denn bei raus? würde mich brennend intressieren ^^

was mir auch unter den nägeln brennt ist die frage, ob es irgendwie auch für ne gescheite "vorhaltewinkel" berechnung taugen würde. ebene aus flugvektor des ziels und vektor von mir zum ziel bauen. kann man nun jeden punkt per winkel errechnen. kommt halt noch irgendwie der zeitfaktor hinzu. also geschossgeschwindigkeit und zielgeschwindigkeit (weg / zeit). müsste man also aus den gerade eine zeitabhängige formel basteln und beide gleich setzen oder so.

daher würds mich jucken zu erfahren, ob die idee was wert war :P
 
Icb habs aufgegeben den Abstand so zu berechnen, zum Testen nehm ich eine "Referenzgerade", also mache meine Strecke einfach zur Gerade und schaue ob der Schnittpunkt dann auf der Strevke liegt.
Ich brauchte das ja für eine Art Raycasting in 2D, aber wenn man einen Algorithmus, den man als Entwurf hat, in Code umsetzt wird eh wieder alles ganz anders :( .

Gibts eigentlich in Java eine Klasse in der mab ein Baumdiagramm abspeichern kann?
 
Zurück