BPS #4: Vektoren

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Xeres

Moderator

Betreff: BPS #4: Vektoren

BeitragDo, März 03, 2011 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
user posted image

Aufgabenstellung:

Es wird Zeit, sich mit Vektoren zu beschäftigen! Das Ziel ist ein Programm, das drei einfache Vektoren als Linien darstellt. Als Ursprung dieser Vektoren dient der Vektor vom Punkt (Grafikfenstermitte) zum Punkt (Mauskoordinaten). Nennen wir in Maus-Vektor. Dieser Vektor soll dann natürlich auch so eingezeichnet werden, dass er von der Bildschirmmitte zur Mausposition zeigt.

Zweitens soll ein Vektor gezeichnet werden, dessen Länge immer 100[Pixel] beträgt und dem ersten Vektor genau entgegengesetzt ist (also von der Maus weg zeigt). Natürlich ist dies der Null-Vektor, wenn auch der Maus-Vektor (0,0) ist.

Zu guter Letzt wird noch ein Vektor gezeichnet, der orthogonal zum Maus-Vektor ist und halb so lang wie dieser ist.

Natürlich ist die Aufgabe ohne Sin, Cos, Tan und deren Umkehrfunktionen zu lösen - das wäre ja sonst auch zu kompliziert Wink

Tipps:

  • Wähle Arrays (in BlitzMax) resp. BlitzArrays (in BlitzBasic) zum speichern der Vektoren
  • Das Internet sollte genug Informationen über Vektoren liefern (weitere Stichworte: Einheitsvektor, Normierung, Betrag, Orthogonalität)
  • Die Länge eines Vektors nennt man auch Betrag
  • Ein Vektor mit Betrag 100Px und Richtung x ist = Vektor mit Betrag 1Px *100 und Richtung x
  • Orthogonale Vektoren stehen Senkrecht aufeinander, also 90° zueinander, und lassen sich einfach bilden: (x,y) = ⊥(-y,x)


Zeit:
Bitte postet Eure fertigen Codes erst in 2 Wochen, wenn der Auswertungsthread erstellt wird, dort hinein.
Fragen könnt ihr hier natürlich jederzeit stellen.

RELATED TOPIC: Auswertungsthread
RELATED TOPIC: Die Beginner's Practice Series (BPS)
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
  • Zuletzt bearbeitet von Xeres am Di, Dez 20, 2011 5:50, insgesamt einmal bearbeitet

darth

Betreff: Kleine Erläuterung

BeitragFr, März 04, 2011 1:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich nehme mir jetzt einfach frech heraus anzunehmen, dass nicht alle wirklich Vektorgeometrie gehabt haben.
Orthogonal ist das gleiche wie rechtwinklig. Also sollte der Winkel zwischen den beiden Vektoren 90° sein.

Vielleicht ist es klug solche "Fachwörter" in einer Aufgabenstellung zu verwenden, aber man sollte sie erklären. Natürlich ist das Wort klar wenn man es kennt, aber man sollte auch damit rechnen, dass nicht jeder den gleichen Wissensstand hat. Man soll schon den Umgang mit solchen Worten lernen, aber völlig ohne Stützräder ins Wasser zu springen ist auch keine gute Idee. Nur als kleiner Einwurf Smile

PS: Mit sin/cos wäre es nicht wirklich komplizierter (vllt sogar einfacher?).. Allerdings langsamer. Aber das ist wohl Ansichtssache.

MfG,
Darth
Diese Signatur ist leer.

Xeres

Moderator

BeitragFr, März 04, 2011 2:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Aufgabe ist als Nachfolger zur letzten gedacht, in der Atan2, Sin, Cos als Lernziel gewählt waren. Diesmal sollte man halt Vektoren Verwenden. Prinzipiell kann man die Aufgaben auf diversen Wegen lösen - wir haben halt jeweils ein gewisses Thema im Sinn, so dass wir möglichst viele Thematiken abdecken können.

Genauso, wie auf den Wikipedia-Artikel verlinkt wurde, kann man hier ja - wie immer - bei Unklarheiten irgendeiner Art Nachfragen. Selber suchen und versuchen kann man hierbei auch lernen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

darth

BeitragFr, März 04, 2011 2:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich verstehe (hoffentlich) was du meinst. Du solltest meinen kleinen Einwurf über die Winkelfunktionen nicht allzuernst nehmen, das war eine Spekulation über die Art wie man die Aufgabe noch lösen könnte. Wie das schlussendlich gemacht wird, ist ja jedem selber überlassen.

Zum anderen Punkt: Wir haben wohl ziemlich verschiedene Ansichten in Sache Didaktik.. Aber das muss ich hier nicht diskutieren, es ist deine Aufgabe und dir ist völlig frei sie zu stellen wie du willst Smile

MfG,
Darth
Diese Signatur ist leer.

BlitzMoritz

Betreff: Re: Kleine Erläuterung

BeitragFr, März 04, 2011 9:01
Antworten mit Zitat
Benutzer-Profile anzeigen
darth hat Folgendes geschrieben:
...ich nehme mir jetzt einfach frech heraus anzunehmen, dass nicht alle wirklich Vektorgeometrie gehabt haben.
Orthogonal ist das gleiche wie rechtwinklig. Also sollte der Winkel zwischen den beiden Vektoren 90° sein.
Vielleicht ist es klug solche "Fachwörter" in einer Aufgabenstellung zu verwenden ...

Der Begriff "Orthogonale" wird bereits in der 5.Klasse des Gymnasiums und der Realschule in der elementaren Geometrie im Zusammenhang mit einfachen Geraden, Parallelität etc. eingeführt, ich habe es gerade einmal in ein paar Schulbüchern nachgeblättert:
"Elemente der Mathematik", Klasse 5, Schroedelverlag ISBN 3-507-83705-6, Seite 155
oder im Lambacher Schweizer-Mathematikschulbuch, Klasse 5, ISBN 3-12-734751-0, Seite 56
  • Zuletzt bearbeitet von BlitzMoritz am Fr, März 04, 2011 11:44, insgesamt 3-mal bearbeitet

Holzchopf

Meisterpacker

Betreff: Re: Kleine Erläuterung

BeitragFr, März 04, 2011 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
darth hat Folgendes geschrieben:
Orthogonal ist das gleiche wie rechtwinklig. Also sollte der Winkel zwischen den beiden Vektoren 90° sein.

Genau das steht doch auch in der Aufgabenstellung:
Xeres hat Folgendes geschrieben:
  • Orthogonale Vektoren stehen Senkrecht aufeinander, also 90° zueinander, und lassen sich einfach bilden: (x,y) = ⊥(-y,x)


</meinSenf> Wink
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

darth

BeitragFr, März 04, 2011 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich mag keinen Senf ;( hast du vllt auch Mayonnaise?
Ich sehe es ja ein, ich habe nicht alles gelesen. Mea Culpa etc, nu lasst mir meinen Frieden *seufz*

MfG,
Darth
Diese Signatur ist leer.
 

BBPro2

Betreff: Re: Kleine Erläuterung

BeitragSa, März 05, 2011 3:52
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMoritz hat Folgendes geschrieben:
darth hat Folgendes geschrieben:
...ich nehme mir jetzt einfach frech heraus anzunehmen, dass nicht alle wirklich Vektorgeometrie gehabt haben.
Orthogonal ist das gleiche wie rechtwinklig. Also sollte der Winkel zwischen den beiden Vektoren 90° sein.
Vielleicht ist es klug solche "Fachwörter" in einer Aufgabenstellung zu verwenden ...

Der Begriff "Orthogonale" wird bereits in der 5.Klasse des Gymnasiums und der Realschule in der elementaren Geometrie im Zusammenhang mit einfachen Geraden, Parallelität etc. eingeführt, ich habe es gerade einmal in ein paar Schulbüchern nachgeblättert:
"Elemente der Mathematik", Klasse 5, Schroedelverlag ISBN 3-507-83705-6, Seite 155
oder im Lambacher Schweizer-Mathematikschulbuch, Klasse 5, ISBN 3-12-734751-0, Seite 56


zudem kann es nicht schaden den leuten so früh wie möglich aufzuzeigen, dass google nicht nur zum finden von pornos und spielen dient.
gibt man bei google orthogonal ein und klickt auf die 1. seite ist das 3. wort bereits "rechtwinklig" - so viel muss man den leuten zutrauen können (was aber leider oft besser nicht getan hätte ^^)

hazumu-kun

BeitragMo, März 07, 2011 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum orthogonalen Vektor:
In der zweidimensionalen Vektorebene gibt es zu jedem Vektor, exklusive Nullvektor, 2 orthogonale Vektoren.

Das "*" bedeutet auf Vektoren angewandt Skalarprodukt.

Beispiel:
Code: [AUSKLAPPEN]
(1) * ( 3) = 1*3 - 1*3 = 0
(3)   (-1)

Hier der zu 3/-1 entgegengesetzte Vektor:
(1) * (-3) = 1*3 - 1*3 = 0
(3)   ( 1)


Welchen Vektor sollen wir denn nun nehmen? Very Happy

darth

BeitragMo, März 07, 2011 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

meine Richtlinie ist eigentlich immer das Kreuzprodukt von [v; 0] und [0; 0; 1], weil das ein "rechthändiges" System gibt (rechte Hand Regel, Koordinatensystem aus Daumen, Zeigefinger, Mittelfinger), wobei man dann halt einfach die 3. Dimension (da sowieso = 0) vernachlässigt.

In deinem Beispiel gibt das
[1; 3; 0] x [0; 0; 1] = [3; -1; 0]

Passt allerdings nicht zu dem, was in den Tipps steht :/
Zitat:
Orthogonale Vektoren stehen Senkrecht aufeinander, also 90° zueinander, und lassen sich einfach bilden: (x,y) = ⊥(-y,x)

Tjoa :O "Da steh ich nun ich armer Tor und bin so klug als wie zuvor", oder so ähnlich.

Mfg,
Darth
Diese Signatur ist leer.

Xeres

Moderator

BeitragMo, März 07, 2011 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
hazumu-kun hat Folgendes geschrieben:
Welchen Vektor sollen wir denn nun nehmen? Very Happy
Einen von beiden.
Für einen gilt (x,y) = ⊥(-y,x) für den anderen gilt (x,y) = ⊥(y,-x) - beides ist Orthogonal, beides ist vollkommen in Ordnung würde ich sagen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

hazumu-kun

BeitragMo, März 07, 2011 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann änder doch die Aufgabe so, dass jeder orthogonale Vektor zugelassen ist.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Xeres

Moderator

BeitragMo, März 07, 2011 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo liest du etwas anderes? Die Aufgabenstellung ist unzweideutig.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

hazumu-kun

BeitragMo, März 07, 2011 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Moment steht da nur orthogonal, nur welcher? Aber egal, ich halte mich hier wohl an Kleinigkeiten fest.
Ansonsten sehr gute Aufgabenstellung Wink
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Holzchopf

Meisterpacker

BeitragMo, März 07, 2011 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Aufgabenstellung ist von mir. Sorry, dass ich mit dem Text für so viel Verwirrung sorge Confused Soll nicht wieder vorkommen! Erst recht nicht, weil noch weitere Aufgaben von mir folgen werden Rolling Eyes

Aber um mich in der ganzen orthogonal-Sache ein wenig zu rechtfertigen (und um euer Problem hoffentlich nachvollziehen zu können): Mir ist keine Definition von orthogonal bekannt, bei welcher der eingeschlossene Winkel nicht ±90° beträgt. Das gilt auch für Vektoren. Wenn ihr mich eines besseren belehren könnt, dann bitte mit Quelle Wink

Und ja: Für das Lösen der Aufgabe ist es egal, ob da nun +90° oder -90° dazwischen sind. Wirklich. Ich hoffe doch schwer, dass diese Entscheidung nicht allen ernstes zu viel Freiheit bedeutet.

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
  • Zuletzt bearbeitet von Holzchopf am Di, März 08, 2011 0:36, insgesamt einmal bearbeitet

BlitzMoritz

BeitragDi, März 08, 2011 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur noch eins am Rande:
Man stelle sich vor, es handle sich nicht um Vektoren, also gewissermaßen Strecken mit einer bestimmten Richtung, sondern um Geraden, dann käme die Diskussion um den Bedeutung von "orthogonal" gar nicht auf, den die Unendlichkeit der Geraden sorgt ja dafür, dass auf beiden Seiten der zu schneidenden Strecke 90° herrscht. Bei einem Vektor ist es jedoch schon ein Unterschied, ob er in die eine oder genau in die entgegengesetzte Richtung zeigt, zumal der Ausgangspunkt auf dem Mausvektor liegt

Aber ich glaube, jeder hat's inzwischen verstanden, dass es egal sein soll, welcher der orthogonalen Vektoren dargestellt wird.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group