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

21.04.2011, 10:27

Strecke um bestimmten Betrag verlängern/kürzen

Hi,

ich habe eine Strecke mit den Koordinaten x1,y1 - x2,y2, die an beiden Enden um einen bestimmten Betrag verlängert/gekürzt werden soll.

Mein Ansatz wäre es jetzt, deren Orientierung zu ermitteln und dann (je nach dem, in welchem Quadranten die Enden liegen) entsprechend was hinzuzuaddieren bzw. zu subtrahieren (mit Hilfe des normalisierten Vektors und dem gewünschten Betrag).

Allerdings: geht das auch einfacher und vor allem rechenzeitschonender?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

21.04.2011, 10:33

Was da soll da noch einfacher sein? Die Differenz von (x1/Y1) zu (X2/Y2) ist ein Vektor. Normieren, mit der gewünschten Länge skalieren, auf Punkt 1 addieren und von 2 subtrahieren, fertig. Noch einfacher wird's nicht gehen. Quadranten sind da völlig überflüssig.
Kann es sein, dass Vektor-Mathematik nicht gerade Deine Stärke ist? Eventuell solltest Du dazu mal ein Mathematik-Buch lesen. Das könnte Dir auf Dauer deutlich mehr helfen als simple Fragen immer wieder hier im Forum zu stellen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

21.04.2011, 13:43

Kann es sein, dass Vektor-Mathematik nicht gerade Deine Stärke ist?



Um genau zu sein: ich hatte es gar nicht in der Schule. Deswegen versuche ich ja gerade, mir das mühsam zu ergoogeln/erwikin/erfragen.

4

21.04.2011, 14:00

Kann es sein, dass Vektor-Mathematik nicht gerade Deine Stärke ist?



Um genau zu sein: ich hatte es gar nicht in der Schule. Deswegen versuche ich ja gerade, mir das mühsam zu ergoogeln/erwikin/erfragen.


Das ist im Buch "3D-Spieleprogrammierung" von David Scherfgen recht gut beschrieben, ich hab das gelesen und ein vierteljahr später machten wir den Stoff in der Schule durch, ich hab in der Schule nix neues gelernt ;)

aja und noch zum thema:

wenn du nicht mit x1,y1 - x2,y2 sondern mit Vektor A und Vektor B rechnest,

kannst du dir einen Zwischenvektor C errechnen dieser beträgt B-A

nun musst du dir die länge von C errechnen:
längeC=sqr(C.x²+C.y²) bzw sqr(C.x²+C.y²+C.z²) bei 3 Dimensionalen Vektoren

um zu wissen in welche richtung die strecke erweitert werden soll, brauchst du den Einheitsvektor von C, welcher (wie der Name schon sagt) eine Länge von 1 hat.

den bekommst du wenn du den Vektor durch seine Länge dividierst: E=C/längeC

und die Strecke auf eine Länge von x zu erweitern muss man einfach wieder den Einheitsvektor mal x multiplizieren, wenn du den Vektor erweitern willst, wirst du als x die Länge + die Erweiterung nehmen:

x= längeC+y

ich hoffe du verstehst meine "beschreibungen", ich weiß, dass ich kein mathe-lehrer bin...

Zitat

Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fuxii« (21.04.2011, 14:27)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

21.04.2011, 14:17

Um genau zu sein: ich hatte es gar nicht in der Schule. Deswegen versuche ich ja gerade, mir das mühsam zu ergoogeln/erwikin/erfragen.

Ein Buch ist da sicherlich die bessere Wahl. Online findet man meist nur bruchstückhafte Informationen, aber nichts durchgängiges.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige

Ähnliche Themen