Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht)

Brexoi

Mitglied
Hallo liebe Community,
ich bin neu in der Welt von Java und sitze gerade an meiner ersten Aufgabe dran.
Ich benutze das Programm/Compiler Netbeans.

ich bin gerade an einer aufgabe dran in der ich ein Kreuzprodukt zweier Vektoren miteinander berechnen muss, hab aber momentan irgendwie eine Blockade und komme nicht wirklich weiter.
Hier mal ein ausschnitt vom Quellcode der Hauptklasse:

[SIZE=+1]
Java:
public static void main(String[] args) {
    Vektor stromleiter = new Vektor();
    stromleiter.hersteller = "Stromleiter";
    stromleiter.vektor = 2;
    stromleiter.vektora1 = 1.5;
    stromleiter.vektora2 = 1;
    
    Vektor flussdichte = new Vektor();
    flussdichte.hersteller = "Flussdichte";
    flussdichte.vektor = 1;
    flussdichte.vektora1 = 2;
    flussdichte.vektora2 = 0.5;
    
    stromleiter.zeigeInfo();
    flussdichte.zeigeInfo();
    }
    
}
[/SIZE]

und hier ist die Klasse für die ganzen "Datentypen":

[SIZE=+1]
Java:
public class Vektor {
  
  int skalar;
  double vektor, vektora1, vektora2; 
  String hersteller;
  
  public void zeigeInfo(){
   System.out.println("Name = " + hersteller + "\nVektorA1 = " +this.vektor + 
         "\nVektorA2 = " +this.vektora1 +"\nVektorA3 = " +this.vektora2 + "\n");
    }
   
  //Konstruktor
  
    }
[/SIZE]

Als ergebnis bekomme ich momentan folgendes ausgegeben:

Name = Stromleiter
Vektor1 = 2.0
Vektor2 = 1.5
Vektor3 = 1.0

Name = Flussdichte
Vektor1 = 1.0
Vektor2 = 2.0
Vektor3 = 0.5

Ist auch soweit inordnung für mich, nun will ich gerne aber irgendwie die oberen Vektoren mit den unteren Vektoren berechnen, sprich:
Vektor2 (oben) x Vektor3 (unten)
Vektor2 (unten) x Vektor 3(oben)
Vektor1 (oben) x Vektor3 (unten)
Vektor1 (unten) x Vektor3 (oben)
usw.

Ist das irgendwie möglich? Oder muss ich den Quellcode irgendwie umschreiben um zwei ausgaben über 2 verschiedene Println zu haben.
 

Tarrew

Top Contributor
Du könntest eine Methode schreiben, die als Parameter 2 Vektoren erwartet.
In der Methode kannst du dann das Kreuzprodukt berechnen und ausgeben.
Also zB:
Java:
public static Vektor kreuzprodukt(Vektor a, Vektor b){
	  Vektor result = new Vektor();
	  
	  result.vektor=(a.vektora1*b.vektora2)-(a.vektora2*b.vektora1);
	//hier kannste das Kreuzprodukt weiter berechnen und ausgeben.
	  
	  return result;
  }

Alternativ eine nicht-statische Methode in deiner Klasse Vektor, die dann als Eingabe nur einen Vektor erwartet.

In deiner Hauptklasse kannste dann einfach die Methode "kreuzprodukt" aufrufen und deine beiden Vektoren übergeben. Das Ergebnis in dem neuen Vektor speichern und ggfs. auf der Konsole ausgeben.

Hoffe das ist es was du machen willst, der letzte Satz ist etwas verwirrend.
 

Brexoi

Mitglied
Du könntest eine Methode schreiben, die als Parameter 2 Vektoren erwartet.
In der Methode kannst du dann das Kreuzprodukt berechnen und ausgeben.
Also zB:
Java:
public static Vektor kreuzprodukt(Vektor a, Vektor b){
      Vektor result = new Vektor();
      
      result.vektor=(a.vektora1*b.vektora2)-(a.vektora2*b.vektora1);
    //hier kannste das Kreuzprodukt weiter berechnen und ausgeben.
      
      return result;
  }

Alternativ eine nicht-statische Methode in deiner Klasse Vektor, die dann als Eingabe nur einen Vektor erwartet.

In deiner Hauptklasse kannste dann einfach die Methode "kreuzprodukt" aufrufen und deine beiden Vektoren übergeben. Das Ergebnis in dem neuen Vektor speichern und ggfs. auf der Konsole ausgeben.

Hoffe das ist es was du machen willst, der letzte Satz ist etwas verwirrend.

Danke dir für die schnelle hilfestellung, hört sich jedenfalls klasse an, nun ist die frage wie kann ich das denn von der Mainklasse abrufen?
ich dachte sowas ruft man immer mit "zeigeInfo" oder "zeigeDaten" ab, geht aber nicht wirklich,..

Hab schon gefunden durch:
Java:
Vektor neuerVektor = Vektor.kreuzprodukt(stromleiter, flussdichte);
 
Zuletzt bearbeitet:

Brexoi

Mitglied
Ich hätte da mal eine frage, ich hab folgendes, ich hab eine Hauptklasse in der die Ausgaben und so steht und eine Klasse Vektor in der die ganzen "Datentypen" drine stehen. Das Programm berechnet das Kreuzprodukt zweier Vektoren miteinander und das ergebnis (der neue Vektor) wird mit einem "Skalar" multipliziert.
Ist es irgendwie möglich, das, dass Programm nun noch 2-3 weitere Variationen ausspuckt wie beim ersten durchlauf nur mit anderen zahlen? Oder müsste ich den ganzen code noch 2-3x neu einfügen (copy & paste) um das zubekommen?

Momentaner Stand und Code sieht soweit so aus:
Hauptklasse
Java:
package lorentzkraft;


public class Lorentzkraft {

    public static void main(String[] args)
    {
        Vektor stromleiter = new Vektor(2, 0, 0, "Stromleiter");
        Vektor flussdichte = new Vektor(0, 0.5, 0, "Flussdichte");

        
        System.out.println(stromleiter);
        System.out.println(flussdichte);

        Vektor kreuzprodukt = stromleiter.kreuzprodukt(flussdichte);
        System.out.println(kreuzprodukt);

        System.out.println(berechneLorentzkraft(3, stromleiter, flussdichte));
    }

    private static Vektor berechneLorentzkraft(int i, Vektor l, Vektor b)
    {
        return l.kreuzprodukt(b).multiplizieren(i);
    }
}

Klasse Vektor
Java:
package lorentzkraft;


public class Vektor {


    private double x, y, z;

    private String bezeichnung;

    public Vektor(double x, double y, double z, String bezeichnung)
    {
        this.x = x;
        this.y = y;
        this.z = z;
        this.bezeichnung = bezeichnung;
    }

    @Override
    public String toString()
    {
        return "Vektor [" + bezeichnung + "]" +
             "\nx = " + this.x +
             "\ny = " + this.y +
             "\nz = " + this.z + "\n";
    }


    public Vektor kreuzprodukt(Vektor v)
    {
        return new Vektor((this.y * v.z) - (v.y * this.z), (this.x * v.z) - 
                (v.x * this.z), (this.x * v.y) - (v.x * this.y),
                          "Kreuzprodukt von " + this.bezeichnung + 
                                  " und " + v.bezeichnung);
    }

public Vektor multiplizieren(int i)
    {
        return new Vektor(x*i, y*i, z*i, bezeichnung + 
                " multipliziert mit "+i + " (Skalar/Stromstärke)");
    }

}
 

Saheeda

Top Contributor
Hi,

mir würden jetzt spontan zwei Varianten einfallen.

Nr. 1 - Annahme: Du möchtest ein gleichmäßiges Intervall abdecken:

Java:
for(int i = 0; i< 10; i++){
	Vektor stromleiter = new Vektor(i, 0, 0, "Stromleiter");
	Vektor flussdichte = new Vektor(i, 0, 0, "Flussdichte");

	berechneLorentzkraft(3, stromleiter, flussdichte);
}

Du kannst hier auch i mit jedem beliebigen Faktor multiplizieren oder eine der anderen Koordinaten verändern, wie du halt möchtest.


Nr. 2 - Annahme: Die Werte sind gestreut:

In dem Fall würde ich mir ein Array aus Stromleiter-Vektoren und eines aus Flussdichte-Vektoren basteln und entweder jeden Eintrag mit jedem anderen berechnen oder immer die beiden Einträge an derselben Position.

Java:
//gleiche Elemente
for (int i = 0; i < stromleiterVektoren.length; i++) {
		berechneLorentzkraft(3, stromleiterVektoren[i], flussdichteVektoren[i]);
}

//jedes mit jedem
for (int i = 0; i < stromleiterVektoren.length; i++) {
	for (int j = 0; j < flussdichteVektoren.length; j++) {
		berechneLorentzkraft(3, stromleiterVektoren[i], flussdichteVektoren[j]);
	}
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
G Klassen Vergleich zweier Klassen Java Basics - Anfänger-Themen 23
S Implementieren zweier Klassen Java Basics - Anfänger-Themen 5
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
N Methoden Methode zum Vergleich zweier Geburtstage Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
D Zusammenfassen zweier Programme Java Basics - Anfänger-Themen 3
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
N Vergleich zweier String Arrays scheitert Java Basics - Anfänger-Themen 3
C Proportionale Abnahme zweier Werte Java Basics - Anfänger-Themen 4
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
S Ermittlung des GGTs zweier Werte Java Basics - Anfänger-Themen 5
Y Erste Schritte Verknüpfung zweier JAVA-Codes Java Basics - Anfänger-Themen 8
A Methoden Gedanken Anstöße zur Realisierung zweier Ideen (Grafisch Sekunden zählen und Frameaufteilung) Java Basics - Anfänger-Themen 18
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
G Kombination zweier Befehle (Preis festlegen & Rabatt berechnen) Java Basics - Anfänger-Themen 3
W Methoden größe zweier tiere vergleichen Java Basics - Anfänger-Themen 15
K Schnitt zweier Ebenen ergibt Gerade Java Basics - Anfänger-Themen 10
L vergleich zweier texte Java Basics - Anfänger-Themen 18
B Vergleich zweier Objekte durch "Hashfunktion" Java Basics - Anfänger-Themen 12
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
J Dimensionen zweier Arrays vergleichen Java Basics - Anfänger-Themen 4
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N Datenaustausch zweier rechner Java Basics - Anfänger-Themen 4
turmaline Gleicheit zweier Listen Java Basics - Anfänger-Themen 12
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
C Dateiinhalt zweier Dateien auf Gleichheit prüfen Java Basics - Anfänger-Themen 3
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
W Unterschiede zweier Dateien herauslesen Java Basics - Anfänger-Themen 7
P Unterschiede zweier System.in Varianten Java Basics - Anfänger-Themen 3
I Abhängigkeiten zweier Klassen Java Basics - Anfänger-Themen 25
G Vergleich zweier Arrays Java Basics - Anfänger-Themen 8
D Eine Nachkommazahl zweier Double vergleichen Java Basics - Anfänger-Themen 4
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
S Addieren zweier Arrays Java Basics - Anfänger-Themen 10
T ermittlung des minimus zweier eingegebener werte Java Basics - Anfänger-Themen 7
G größere zweier zahlen ermitteln und ausgeben Java Basics - Anfänger-Themen 6
G Summe zweier doubles falsch? Java Basics - Anfänger-Themen 10
I Kollision zweier Rechtecke Java Basics - Anfänger-Themen 9
H Genauigkeit beim Multiplizieren zweier Zahlen Java Basics - Anfänger-Themen 2
K Vergleich zweier Objekte in einer HashMap Java Basics - Anfänger-Themen 6
B Zusammenspiel zweier JFrames Java Basics - Anfänger-Themen 2
A Schnitt zweier Rechtecke ermitteln Java Basics - Anfänger-Themen 2
N Vergleich zweier Elemente verschiedener Vectoren Java Basics - Anfänger-Themen 2
G Vergleich zweier 'long'-Werte. Problem! Java Basics - Anfänger-Themen 6
T Inhalte zweier Variablen tauschen Java Basics - Anfänger-Themen 18
U Maximum zweier Zahlen ermitteln Java Basics - Anfänger-Themen 7
N Den Inhalt zweier Strings (Zahlen) addieren Java Basics - Anfänger-Themen 5
S maximum zweier Zahlen Java Basics - Anfänger-Themen 1
T Vektoren Java Basics - Anfänger-Themen 11
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
J Vektoren (2-dimensional) Java Basics - Anfänger-Themen 2
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
D Vektoren Initialisieren Java Basics - Anfänger-Themen 1
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3
M n-dim Vektoren mit Arrays Java Basics - Anfänger-Themen 3
J Wie erstelle ich Vektoren? Java Basics - Anfänger-Themen 5
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Vektoren, Methode Java Basics - Anfänger-Themen 10
S 3D Cube aus Vektoren Java Basics - Anfänger-Themen 20
G Vektoren speichern Java Basics - Anfänger-Themen 3
N Vektoren multiplizieren Java Basics - Anfänger-Themen 8
N Ausgabe von Vektoren Java Basics - Anfänger-Themen 3
L Suche Hilfe , Problem mit Vektoren und klassen Java Basics - Anfänger-Themen 21
R Vektoren Java Basics - Anfänger-Themen 6
S Vektoren und Objektwerte Java Basics - Anfänger-Themen 4
V Vektoren zur Laufzeit erzeugen Java Basics - Anfänger-Themen 7
J Durchlaufen von Vektoren Java Basics - Anfänger-Themen 14
F Ein Array von Vektoren, Eclipse meckert Java Basics - Anfänger-Themen 12
M Prinzipielle Frage zu Vektoren Java Basics - Anfänger-Themen 2
H Vektoren aus einem String! Java Basics - Anfänger-Themen 2
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
W Verwalten von Objekten - Listen, Vektoren usw. Java Basics - Anfänger-Themen 6
M Zwei ineinanderverschachtelte Vektoren - generics möglich? Java Basics - Anfänger-Themen 3
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
F Vektoren Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben