Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

kurze Frage zu Java!

Angelo8 / 6 Antworten / Baumansicht Nickles

Hallo,

ich lerne neu Java Programmierung.

Deswegen habe ich diese kleine folgende Frage dazu:

Ich muss mehrere Punkte aus verschiedenen 3 Komponenten (x, y, z) Werten erzeugen.

z.B.: von (1, 2, 3) und (2, 4, 6) muss ich 2 Punkte in Java zeichnen.

Hat jemand Idee dafür?

Wenn jemand mir dabei helfen kann, bin ich sehr dankbar dafür.

Gruß

Angelo

bei Antwort benachrichtigen
Borlander Angelo8 „kurze Frage zu Java!“
Optionen

Du suchst also nach einer Möglichkeit 3D-Koordinaten auf eine 2D-Darstellung zu projezieren?
Da gibt es verschiedene Möglichkeiten, je nachdem welche Art der Projektion (mit/ohne Fluchpunkt) zum Einsatz kommen soll. Eine relativ einfache Darstellungsmöglichkeit besteht darin die in die Bildschirmebene hineingehende Koordinatenachse im 45° Winkel und um die hälfte verkürzt dar zu stellen.

Also was in der Richung wie:
x2D = x3D - z3D / SQRT(2) / 2
y2D = display.height - (y3D - z3D / SQRT(2) / 2)

Für Umfangreichere 3D-Darstellunegen könnte Java3D interessant sein:
http://java.sun.com/products/java-media/3D/index.jsp


Gruß
Borlander

bei Antwort benachrichtigen
Angelo8 Borlander „Du suchst also nach einer Möglichkeit 3D-Koordinaten auf eine 2D-Darstellung zu...“
Optionen

Hallo wieder,

ich habe ein Beispiel Programm gefunden und weiter bearbeitet.

Aber ich kriege, nur schwarze Fläche, ohne Punkte.

Hat jemand Idee dafür, wie ich es weiter lösen kann.

Gruß

Angelo

Das letzte bearbeitete Programm:

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;

import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Material;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.Primitive;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;

// HelloJava3Da renders a single, rotating cube.

public class HelloJava3Da extends Applet {
/**
* The generated serialVersionUID.
*/
private static final long serialVersionUID = -8652165991244123757L;

public static void main(final String[] args) {
new MainFrame(new HelloJava3Da(), 256, 256);
} // end of main (method of HelloJava3Da)

public HelloJava3Da() {
this.setLayout(new BorderLayout());
final GraphicsConfiguration config = SimpleUniverse
.getPreferredConfiguration();

final Canvas3D canvas3D = new Canvas3D(config);
this.add("Center", canvas3D);

final BranchGroup scene = this.createSceneGraph();

// SimpleUniverse is a Convenience Utility class
final SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

// This will move the ViewPlatform back a bit so the
// objects in the scene can be viewed.
simpleU.getViewingPlatform().setNominalViewingTransform();

simpleU.addBranchGraph(scene);
} // end of HelloJava3Da (constructor)

// The following allows this to be run as an application
// as well as an applet

Appearance createAppearance() {

final Appearance appear = new Appearance();
final Material material = new Material();
// material.setDiffuseColor(0.0f, 0.0f, 1.0f);
material.setShininess(50.0f);
// make modifications to default material properties
appear.setMaterial(material);

// ColoringAttributes colorAtt = new ColoringAttributes();
// colorAtt.setShadeModel(ColoringAttributes.SHADE_FLAT);
// appear.setColoringAttributes(colorAtt);

return appear;
}

public BranchGroup createSceneGraph() {
// Create the root of the branch graph
final BranchGroup objRoot = new BranchGroup();

final Transform3D zTrans = new Transform3D();
zTrans.set(new Vector3f(1f, 2f, 1.3f)); // -------------------------------
// POSITION 1
final TransformGroup objTrans = new TransformGroup(zTrans);
objTrans.addChild(new Sphere(0.9f, Primitive.GENERATE_NORMALS, this
.createAppearance()));

final Transform3D zTrans2 = new Transform3D();
zTrans.set(new Vector3f(3f, 3f, 4f)); // -------------------------------
// POSITION 2
final TransformGroup objTrans2 = new TransformGroup(zTrans2);
objTrans2.addChild(new Sphere(0.9f, Primitive.GENERATE_NORMALS, this
.createAppearance()));

objRoot.addChild(objTrans);
objRoot.addChild(objTrans2);

return objRoot;
} // end of CreateSceneGraph method of HelloJava3Da

} // end of class HelloJava3Da

bei Antwort benachrichtigen
Angelo8 Nachtrag zu: „Hallo wieder, ich habe ein Beispiel Programm gefunden und weiter bearbeitet....“
Optionen

Hallo wieder,

niemand will mir dabei helfen?

Ist etwas nicht in Ordnung?

bei Antwort benachrichtigen
Borlander Angelo8 „Hallo wieder, niemand will mir dabei helfen? Ist etwas nicht in Ordnung?“
Optionen
niemand will mir dabei helfen?
Also ich kann zu Java3D nix konkreteres beitragen. Ich weiß, daß es das gibt und wo man dann ggf. die Referenz einsehen könnte. So lange ich es nicht selbst brauche reicht das aus, ist schließlich schon was spezielleres. Viel mehr als den Hinweis auf die Existenz ist von meiner Seite her somit also eher unwahrscheinlich.

Unabhängig davon wäre es ggf. hilfreich zu wissen, was Du überhaupt vor hast (womöglich ist Java3D auch vollkommen überdimensioniert für sowas) und auch welche Stellen genau Du verändert hast. Eine Websuche nach Java3D Tutorial wird höchstwahrscheinlich auch was hilfreiches zu Tage bringen...
bei Antwort benachrichtigen
Angelo8 Borlander „ Also ich kann zu Java3D nix konkreteres beitragen. Ich weiß, daß es das gibt...“
Optionen

Hallo,

ich studiere Mechatronik.

In meinem Studium muss ich ein Praktikum machen.

In diesem Praktikum gibt es ein kleines Teil Programmierung.

Mein Unterstützer Prof hat mir Java3D Programm gewählt, weil es gut zu meinem Praktikum Thema passt.

Also Programmierung ist nicht meine Sache.

Und in Mechatronik lernt man sehr wenig Programmierung.

Aber ich muss dieses kleine Praktikum Teil machen, weil ich in meinem ganzen Praktikum so weit bin.

Ich kann nicht wegen dieses kleinen Teils aufhören.

Trotzdem versuche ich Java3D zu lernen.

Aber wie ich schon gesagt habe, ich kann bis jetzt so wenig Programmierung und gar nichts Java3D!

Für weitere Erklärungen stehe ich sofort zur Verfügung!

Mit besten Grüßen

Angelo

bei Antwort benachrichtigen
Borlander Angelo8 „Hallo, ich studiere Mechatronik. In meinem Studium muss ich ein Praktikum...“
Optionen
Also Programmierung ist nicht meine Sache.
Das macht die Sache natürlich nicht umbedingt einfacher und lässt sich auch nicht so auf die Schnelle beheben - Programmieren lernen ist ein Prozess der sich über Jahre hinzieht.

Trotzdem versuche ich Java3D zu lernen.
:-)

Aber wie ich schon gesagt habe, ich kann bis jetzt so wenig Programmierung und gar nichts Java3D!
Google-Suche Java3D Tutorial - da sollte doch sicher was hilfreiches dabei.
Evtl. vorher auch erstmal eine Java-Tutorial suchen wenn notwendig.

Zu konkreten Fragen die Java allgemein betreffen kannst Du natürlich auch gerne nochmal auf diesem Brett posten.


Gruß
Borlander
bei Antwort benachrichtigen