Hi Leute, ich brauche hier mal eure Hilfe! Ich hab die untenstehende Aufgabe bekommen, doch finde keinen geeigneten Lösungsansatz. Ich arbeite mit Xcode und bin noch ziemlicher Anfänger. hier mal die Aufgabe. Erstellen Sie ein Programm in der Programmiersprache C, das die folgende Aufgabe löst. Bauen Sie das Programm modular auf (nutzen Sie Unterprogramme und Module), dokumentieren Sie den Quelltext, indem Sie die verwendeten Funktionen nebst ihrer Ein- und Ausgabeparameter beschreiben! Verwenden Sie lediglich ANSI-C-Bibliothecken und Funktionen, die auf heterogener Hard- und Software lauffähig sind! Aufgabe: In Softwarehersteller beabsichtig das Spiel „Pac Man“ zu programmieren. Hierbei wandert eine Figur, dargestellt durch einen gelben Kreissektor, durch ein Labyrinth und „frisst“ au dem Weg liegende „Nahrung“, dargestellt durch Punkte. Nicht gefressene Punkte bleiben im Labyrinth liegen. Ein Punkt gilt als gefressen, sobald er in den Kreissektor gelangt. Ermitteln Sie die Lage eines solchen Punktes relativ zu einem Kreissektor in einer 2-D Ebene. Punkt und Sektor sind in parametrischer vektorieller Darstellung einzugeben, der Sektor mit Mittelpunkt, Radius und Mittelpunktswinkel. -Richten Sie hierzu zunächst, als unendliche Maschine, ein Benutzerinterface ein, das die Eingabe und Korrektur der benötigten Elemente Punkt und Sektor durch den Benutzer erlaubt. Erzeugen Sie dann einen geschlossenen Linienzug für den Sektor -Vergegenwärtigen Sie sich die mathematischen Grundlagen und erstellen Se ein Modell auf Basis der Vektorrechnung. Definieren Sie anschließend die benötigten Datenelemente und Verfahren(Algorithmen). -Verwenden Sie die Mittel der Vektorrechnung und erstellen Sie hierzu, in einem separaten Modul, eine Sammlung von Funktionen, die das Rechnen mit 2-D Vektoren erlaubt. -Prüfen Sie, ob der eingegebene Punkt innerhalb oder außerhalb des Sektors liegt, wobei de Grenzlinien zum Sektor gehören sollen. Geben Sie die relative Lage (innen oder außen) auf den Bildschirm. Zur Lösung der Aufgabe benötigen Sie Grundkenntnisse der Vektorrechnung, sowie der parametrischen Darstellung von Kreisen und Strecken. Ich hoffe ihr könnt mir helfen!! Gruss Paul
Entgegen anderslautender Ansichten ist das hier kein Mirror von www.hausaufgaben.de Hier wird durchaus Leuten geholfen, aber dafür müssen die wenigstens einen Hauch von Eigeninitative erkennen lassen. Davon bist Du noch weit entfernt.
paul schrieb: > Ich arbeite mit Xcode Das hat hier wohl eh keiner, mangels Mac... obwohl, man kann die oben verlangten Funktionen auch unabhängig davon programmieren. Den Ausdruck "unendliche Maschine" find ich ja süß. :-)
Falls du es noch nicht gemerkt hast. Du sollst KEIN Pac Man implementieren. Pac Man dient nur als Aufhänger und Motivation für die Problemstellung. Du sollst implementieren: Gegeben ein Kreissektor Gegeben ein Punkt Bestimme, ob der Punkt im Kreissektor liegt oder nicht. Und du sollst das Ganze mit Vektorrechnung lösen, wobei du dir die jeweiligen Hilfsfunktionen für Vektorrechnung erst mal machen musst. Du wirst also eine Struktur brauchen, die dir einen Vektor repräsentiert struct vector2D { double X; double Y; }; und dann Funktionen dafür machen, zb 2 Vektoren addieren, 2 Vektoren subtrahieren, die Länge eines Vektors bestimmen, einen Vektor auf Einheitslänge normieren, Dot-Produkt etc. Was du eben so alles brauchst um die Mathematik hinter dem Problem zu lösen. zb ist die Distanz zweier Punkte in der Ebene (zb der zu untersuchende Punkt und der Mittelpunkt des Kreissektors) gegeben durch struct vector2D point; struct vector2D centerPoint; ... double dist = vectLength( vectSubtract( point, centerPoint ) ); ist diese Distanz größer als der Kreisradius, dann liegt der Punkt schon mal nicht in einem Vollkreis mit diesem Radius und kann daher auch nicht im entsprechenden Kreissektor mit eben diesem Radius liegen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.