So das hat sich nun schon erledigt.
nur gibt er mir plötzlich bei der ausgabe der methode eine java.lang.NullPointerException aus.
Warum wenn ich die differenz zwischen zwei Punkten ausrechne..
publicclassDreieck2D{privatePunkt2D p1;privatePunkt2D p2;privatePunkt2D p3;publicDreieck2D(Punkt2D p1,Punkt2D p2,Punkt2D p3){
p1 =this.p1;
p2 =this.p2;
p3 =this.p3;}publicVektor2Dp1Seite(){returnthis.p1.diff(this.p2);// diff ist Methode von Punkt2D, gibts Vektor zurück, der die Differenz der beiden Punkte ist}}
In einer anderen klasse wollte ich das ausprobieren:
Diese Zuweisung ist falsch. Damit weißt du der lokalen Variable p1 des Konstruktor den Wert der Instanzvariable zu, und die ist null. Du musst die Zuweisung umdrehen.
Noch eine Frage:
Muss ich beim Dreieck vorher noch überprüfen ob es wohldefiniert ist, oder ist das egeal?
Weil beim Kreis muss man z.B überprüfen, dass der Radius nicht <0 ist
Genau. Was ein "Dreieck" in einem Programm bedeuten soll, bestimmt der Programmierer. Allerdings wäre es für andere Programmierer leichter verständlich, wenn es mit der üblichen Definition von "Dreieck" arbeiten würde (und diese gegebenenfalls auch über eine Prüfung erzwingt).
Noch eine Frage:
Muss ich beim Dreieck vorher noch überprüfen ob es wohldefiniert ist, oder ist das egeal?
Weil beim Kreis muss man z.B überprüfen, dass der Radius nicht <0 ist
Noch eine Frage:
Muss ich beim Dreieck vorher noch überprüfen ob es wohldefiniert ist, oder ist das egeal?
Weil beim Kreis muss man z.B überprüfen, dass der Radius nicht <0 ist
Drei Punkte ergeben IMMER ein Dreieck.
Definitionsschwierigkeiten könnte es nur dann geben, wenn Punkte zusammenfallen.
Das ist aber letztlich ein Frage wer dir die Punkte Erzeugt.
(Anders wäre es, wenn du die SeitenLÄNGEN vorgegeben hättest. Da kann es Widersprüche geben.)
PS: Warum sollte ein Kreis keinen negativen Radius haben dürfen?
Naja, wieder eine Definition,
... die aber meine Frage nicht beantwortet.
Im Gegenteil: Sehr oft wird gerade beim Kreis das Vorzeichen des Umfangs genutzt, um die "Laufrichtung" festzulegen.
* positiv = Im Uhrzeigersinn
* negativ = gegen den Uhrzeigersinn
oder es kann damit auch "oben" und "unten" unterschieden werden.
oder im 3DBereich kann auch "innen" und "außen" markiert werden, sogar bei Polygonen und Dreicken.
Wenn man diese Unterscheidung aber nicht braucht spricht nichts gegen einen negativen Raduis.
Andererseits kann aber aus den Längen 1/2/100 nie ein Dreieck gebildet werden, solange wir uns nicht über Hyperbolische Räume ... unterhalten.
Somit ist ein negativer Radius nicht wirklich ein Problem.
Wenn doch, dann muss der TO konsequenterweise sehr wohl überprüfen, ob die Punkte seines Dreiecks (vorallem im 2D-Bereich) im mathematisch/geometrischem Sinne positiv angeordnet sind.
Sonst hat er kein Dreieck konstruiert (positiv), sondern ein Dreieck ausgeschnitten (negativ).
Kurz gesagt: Wenn die Positivität des Radius relevant ist, dann muss auch die Laufrichtung des Dreiecks überprüft werden.
Oder eben beides nicht.
Meine Frage wann und wo und warum der Radius für eine darstellende Anwendung überprüft werden "MUSS" ist für mich nicht beantwortet.