PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines Programm für Koordinatenberechnungen (bitte testen)



Ynnus
12.12.2003, 23:36
Hallöchen,

ich hab meine "Hausaufgabenhilfe" vorerst fertiggestellt. Dieses kleine Programm kann dann Werte einer linearen Gleichung auslesen.
Man gibt 2 Punkte ein, das Programm errechnet daraus:

- Den Steigungswinkel in Grad
- Die Steigung (der Tan von delta_y / delta_x) (m)
- Den Achsenabschnitt (b)
- Außerdem stellt das Programm auch gleich die Funktionsgleichung auf

Außerdem zeichnet das Programm diese Gerade auf ein Koordinatensystem von - 12 bis + 12 Maßeinheiten.

Hier ein Bild des Programmes:
http://derfeind2k.de/daten/koordinatenmaster.png

Das Programm mit Sourcecode und fertig compilierter Exe gibts hier zum Laden (41 KB Groß) : http://derfeind2k.de/daten/koordinatenmaster.rar
Geschrieben hab ich das Programm übrigends mit PureBasic

Ich würde mich über Feedback freuen, oder auch wenn ihr noch Fehler finden solltet. Kann ja sein dass ich etwas übersehen habe, dann bitte hier melden. ;)


mfg.

Sunny

Latency
12.12.2003, 23:47
Also ich habe gerade etwas damit rumgespielt und dabei ist mir ein kleiner "Fehler" aufgefallen.

Wenn man z.B. die Koordinaten p1x = 1, p1y = 2, p2x = 1, p2y = 1 nimmt, so wird zwar die korrekte Gerade angezeigt, allerdings stimmen die Werte nicht...

Die Gleichung der Geraden, sollte z.B. x = 1 heißen und nicht "y = -1.#INF00 x + 1.#INF00 :D

Ynnus
12.12.2003, 23:55
ja, das liegt daran dass dies ja garnicht geht! Es handelt sich bei diesen Punkten nicht mehr um eine Funktion, da der X Schnitpunkt der Geraden unendlich viele Y Werte hat. Und eine Funktion ist es nur, wenn X nur genau einen Wert hat, nicht mehr und nicht weniger. Im Klartext bedeutet das, die gerade darf nicht im 90° Winkel stehen, sonst wird diese zwar angezeigt, es handelt sich aber um keine Funktion mehr, somit kann er auch keine Funktionsgleichung ausgeben. ;)

Latency
12.12.2003, 23:58
Original geschrieben von Sunny
ja, das liegt daran dass dies ja garnicht geht! Es handelt sich bei diesen Punkten nicht mehr um eine Funktion, da der X Schnitpunkt der Geraden unendlich viele Y Werte hat. Und eine Funktion ist es nur, wenn X nur genau einen Wert hat, nicht mehr und nicht weniger. Im Klartext bedeutet das, die gerade darf nicht im 90° Winkel stehen, sonst wird diese zwar angezeigt, es handelt sich aber um keine Funktion mehr, somit kann er auch keine Funktionsgleichung ausgeben. ;)

1. Ich weiß was eine Funktion ist ;)
2. Sag doch gleich, dass dein Programm nur Funktionen ausgibt :rolleyes:

Du sagtest nämlich nur, dass dieses Programm die Werte einer linearen Gleichung ausgibt...

MuadDib
12.12.2003, 23:59
jup, ist bei allen 90°-Geraden so, was ja irgendwie klar ist, da Steigung und "Achsenabschnitt" (wir haben das in der Schule IIRC irgendwie anders genannt) ja unendlich sind...

Bau hier am besten ein paar Sonderfälle ein, die dir anzeigen, dass Steigung und Achsenabschnitt = Unendlich ist, und dass bei 90°-Geraden als Funktionsgleichung x = P1x respektive P2x ist bzw bei 0°-Geraden y = Achsenabschnitt angibt.

Ansonsten laufts prima :)

btw. dieses PureBasic ist interessant. Lob an den, der diesen Compiler geschrieben hat (dein Code ist ja wirklich minimalst....). Leider kann ich mich mit der Syntax gar nicht anfreunden ... :(

Ynnus
13.12.2003, 00:04
nein, noch kann man nicht zoomen. Aber vielleicht bau ich das noch etwas um. Und noch mehr Geraden rein, und Schnittpunkte und 0 Punkte berechnen.

Sag doch gleich, dass dein Programm nur Funktionen ausgibt

Du sagtest nämlich nur, dass dieses Programm die Werte einer linearen Gleichung ausgibt...
ist doch selbstverständlich das eine Funktionsgleichung zu einer Funktion gehört, oder?^^
Also kann der Rest korrekt angezeigt werden, wie eine normale Gerade setzen, aber die Funktionsgleichung geht eben nur bei einer gültigen Funktion.

EDIT: Gerade den Syntax find ich schön, der ist so leicht^^ Ich habs mal mit was C ähnlichem versucht, aber das gefällt mir nicht so^^

Freezy
13.12.2003, 00:04
IIIIeeeeekkkk... *runterlad*

Das kann sich als sehr nützlich erweisen falls ich mal ne Raycasting Shaddow Engine für`s RPG Proggen will :D ICh habe nähmlich dieses MAthematische zeugs garnicht drauf ^^

Latency
13.12.2003, 00:07
Original geschrieben von Sunny
ist doch selbstverständlich das eine Funktionsgleichung zu einer Funktion gehört, oder?^^

Okay den Teil habe ich wohl überlesen ^^, Ich nehme alles zurück, mein Fehler...


Original geschrieben von Sunny
Na ja, die Winkel gibt er ja auch korrekt an, nur die Funktionsgleichung geht logischer Weise nur mit Funtkionen.

Du könntest aber stattdessen eine Relationsgleichung ausgeben.
Einfach überprüfen ob die Punkte die selbe X-Koordinate haben, und dann einfach die Gleichung umstellen. Sollte doch ohne viel Aufwand möglich sein oder?

Ynnus
13.12.2003, 01:48
Sodala, nun liget die neue Version 0.81 bereit^^ (Gleicher Link, oben im ersten Beitrag nachsehen!)

Jetzt ist es möglich, zu zoooooooomen, und das ganz schön groß. Man kann nun Maße bis zu (ich glaube) - 50 bis 50 anzeigen, und in den Nahbereich geht es auch weiter. Dort kann jetzt auch der Punkt 0.1 deutlich aufgezeichnet werden. Vorher hätte man da nur einen roten punk gesehen, nun geht es genauer. Außerdem, man kann jetzt wahlweise die roten Markierungen für die 2 Anfangs-Koordinaten ein- oder ausblenden.

Hinweis: Wenn man die beiden Koordinaten zuuuu nah beieinander macht, so um die < 0.05 Unterschied, dann wird die Gerade nicht voll dargestellt. Den Bug behebe ich gerade, ist kein Ding. Nur, die Gerade wird eben nur auf das 1000 fache der Länge zwischen den Punkten gesetzt, und wenn dieses zu klein ist, reichen die Enden der Geraden nicht bis an den Rand. Das sollte sich aber schnell beheben lassen. ;)