PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche dringend Hilfe bei Java-Programm



jovanovm
10-12-2002, 21:47
Hallo!
Ich muss bis Freitag ein Java-Prog abliefern, dass ein Rechteck zeichnet. Mein Problem ist, dass das gezeichnete Rechteck sich in einem bestimmten Winkel befindet. Es wird vom Benutzer folgendes eingegeben: Koordinate x,y für den Puntk A, Seitenlänge a,b und der Winkel alpha in welchem das Rechteckt gezeichnet werden soll. Es sollte alles von der Klasse Viereck abgeleitet werden (Vererbung).
Programmanforderungen: Rechteck zeichnen, Punkte B, C, D angeben mit Koordinaten x,y und die Fläche des Rechtecks.

/*Diese Angaben habe ich von dem Prof. bekommen weiß aber leider nicht so genau was ich damit anfangen soll. */

public class Point {
private double x=0;
private double y=0;
public Point(double x, double y){
super();
this.x=x;
this.y=y;
}
public Point(){
this(0.0d, 0.0d);
}
public String toString(){
return "Point with x="+x+", y="+y;
}
double getAnge2XAxis(){
return Math.atan2(y,x);
}
public double getX(){
return x;
}
public void setX(double x) {
this.x=x;
}
public double getY(){
return y;
}
public void setY(double y) {
this.y=y;
}
public Point newPointNear(double distance, double ange2XAxis){
return new Point((this.x + distance * Math.cos(ange2XAxis)), (this.y + diatance *Math.sin(ange2XAxis)));
}
}

//Das sollte glaub ich was für die Punktberechnung sein

==================================================
//Ab hier kommt was ich mir aufgeschrieben habe zu der Viereck Klasse

public abstact class Viereck{
private float x0, x1, x2, x3, y0, y1, y2, y3;
abstract public float calcArea(); //Flächenberechnung
}

// Ich hoffe mit diesen Angaben kann jemand etwas Anfangen, und hilft mir damit auch sehr, sonst bin ich echt aufgeschmissen.

Ich bitte alle, die sich mit Java mehr auskennen als ich mir zu helfen. Ihr seit meine letzte Hoffnung. Danke im Voraus an alle.

Gruß jovanovm:confused: :confused: :confused:

The Ripper
11-12-2002, 11:13
Bei der Aufgabe hab ich ein Problem: Durch einen Punkt und eine Seitenlänge kann man ein Rechteck nicht eindeutig beschreiben, man bräuchte noch die Länge der Diagonalen oder den Winkel zwischen ab und der Diagonalen oder die Länge der Seite ac oder sowas.

anda_skoa
11-12-2002, 11:48
Original geschrieben von The Ripper
Bei der Aufgabe hab ich ein Problem: Durch einen Punkt und eine Seitenlänge kann man ein Rechteck nicht eindeutig beschreiben, man bräuchte noch die Länge der Diagonalen oder den Winkel zwischen ab und der Diagonalen oder die Länge der Seite ac oder sowas.

Außer es ist spezifiziert, dass der angegene Punkt zB immer der links oben ist.
Dann ist ein Punkt und Länge und Breite ausreichend.

Ciao,
_

jovanovm
11-12-2002, 14:02
Danke für die Antworten,

Der Benuter gibt ja ein, wo sich der Anfangspunt A befindet auf welchen Koordinaten (x, y) und die Seiten a und b, also die Länge wird auch vom Benutzer eingegeben und der Winkel in dem dann das Rechteck gezeichnet werden soll.
Ich weiß nur nicht wie ich die Punkte herausfinden soll von den anderen drei Eckpunten (B,C,D) und wie ich das zusammenbringen soll mit dem Winkel.

Ich hoffe das ich das jetzt etwas verständlicher gemacht habe und bekomme vielleicht von jemanden einen Ansatz wie ich anfangen soll das zu machen.

Danke für alles jovanovm

anda_skoa
11-12-2002, 15:08
Hmm, mal sehn.

Sagen wir A ist der linke untere Eckpunkt, B der rechte untere, C der rechte obere und D der linke obere.
A sei der Abstand von A nach B und b der Anstand von A nach D.

Zuerst aus dem Winkel den Vektor berechnen


double y = tan(winkel); // tan = y/x, x =1
double len = sqrt(fabs(y)); // Laenge des Vektors
/// normieren
y = y / len;
double x = 1 / len;


B berechnet man dann so


double bx = ax + a * x;
double by = ay + a * y;


C ist mit dem Normalvektor zu berechnen


double cx = ax + b* y;
double cy = ax + b*(-x);


D aus C wie B aus A

Also so in etwa.
Eventuell muß wo ein Vorzeichen anders sein.

Ciao,
_

jovanovm
11-12-2002, 15:17
Danke für die Antwort,
nur hab ich noch die Frege wo genau ich das einfügen soll?

Das würde mir weiter helfen.

Grus jovanovm

anda_skoa
11-12-2002, 18:01
Hmm, ja, irgendwo in der Viereck Klasse.
Am besten dort, wo du die Werte bekommst.

Ciao,
_