Rechteck rotieren und frontal anzeigen

Status
Nicht offen für weitere Antworten.

pat270881

Bekanntes Mitglied
Hallo,

ich möchte gerne ein Rechteck dass zuerst so schräg angezeigt wird nach vorne gezogen wird, also durch betätigen zum beispiel eines JSliders.

Ich habe hier eine ganz kleine zeichnung wie ich das meine:

bringingToFront

hat jemand eine ahnung, wie ich das am einfachsten mit Java3D oder JOGL realisieren kann...? :bahnhof:

lg pat
 

Soulfly

Bekanntes Mitglied
Du nimmst einen Glcanvas der meinetwegen die Fläche anzeigt.

Über den Jslider veränderst du den Wert der Rotierung, die wie in der Zeichnung um die rechte Kante der Fläche geht.
Jogl muss halt diese Werte bekommen und fertig.

MfG
Soulfly
 

kaie

Bekanntes Mitglied
Falls Du noch Interesse an einer Lösung haben solltest... kommt sogar ohne Java3D und den ganzen Schnickschnack aus. Viel Spass damit!

Code:
import java.awt.*;
import java.awt.event.*;
import java.net.*;

import javax.imageio.*;
import javax.swing.*;

public class Perspektive extends JPanel
{
    // Attribute
    private Image  bild;
    private double winkel;
    private int    breite;
    private int    hoehe;

    // Konstruktor
    public Perspektive(String url)
    {
        try
        {
            bild = ImageIO.read(new URL(url));
            breite = bild.getWidth(null);
            hoehe = bild.getHeight(null);
            setPreferredSize(new Dimension(breite, hoehe));
        } catch (Exception e)
        {
        }
    }

    public void setzeWinkel(double w)
    {
        if (winkel > 90 || winkel < -90)
            return;
        winkel = w * Math.PI / 180;
        repaint();
    }

    // Zeichenmethode
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);

        // Lichteffektfarbe setzen
        int farbe = (int) (Math.abs(Math.sin(winkel) * 200));
        g.setColor(new Color(0, 0, 0, farbe));

        // Koordinaten berechnen
        int x1 = (int) Math.max(Math.sin(winkel) * breite, 0);
        int x2 = breite - (int) Math.max(Math.sin(-winkel) * breite, 0);
        int y1 = (int) Math.abs(Math.sin(winkel) * hoehe / 4);

        // Bild spaltenweise zeichnen
        for (int x = 0; x < breite; x++)
        {
            int dx = x1 + (x2 - x1) * x / breite;
            int dy = winkel < 0 ? y1 * x / breite : y1 * (breite - x) / breite;

            g.drawImage(bild, dx, dy, dx + 1, hoehe - dy, x, 0, x + 1, hoehe,
                    null);

            //g.drawLine(dx,dy,dx,hoehe-dy); //<-- für Beleuchtung
        }
    }

    public static void main(String[] args)
    {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final Perspektive p = new Perspektive(
                "http://www.sternwarte-hannover.de/galerie/bilder/mars_explorer.jpg");
        JScrollBar scroll = new JScrollBar(JScrollBar.HORIZONTAL, 0, 1, -90, 90);

        scroll.addAdjustmentListener(new AdjustmentListener()
        {
            public void adjustmentValueChanged(AdjustmentEvent a)
            {
                p.setzeWinkel(a.getValue());
            }
        });

        f.getContentPane().add(p);
        f.getContentPane().add(scroll, "South");
        f.pack();
        f.setVisible(true);
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
S Kollisionsabfrage zwischen Rechteck und Polygon Spiele- und Multimedia-Programmierung 1
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
Q Rechteck in BIld suchen Spiele- und Multimedia-Programmierung 8
P Rechteck drehen Spiele- und Multimedia-Programmierung 3
M Bilder verzerren [Rechteck -> Trapez] Spiele- und Multimedia-Programmierung 4
T Rechteck "ziehen"!? Spiele- und Multimedia-Programmierung 1
L ein Rechteck zeichnen Spiele- und Multimedia-Programmierung 6
B MarioKart Map rotieren? Spiele- und Multimedia-Programmierung 6
D 2D Pixelbild rotieren Spiele- und Multimedia-Programmierung 3
TulPe Würfel per Mausklick rotieren Spiele- und Multimedia-Programmierung 10
Creylon [LWJGL] 2D Sprite Rotieren/Drehen Spiele- und Multimedia-Programmierung 6
B j3d mehr als ein Objekt rotieren Spiele- und Multimedia-Programmierung 18
G Rotieren eines Objekts (2D) Spiele- und Multimedia-Programmierung 8
M [Java3D] Rotieren der Scene NICHT des POV Spiele- und Multimedia-Programmierung 4
Developer_X 3D Point rotieren lassen Spiele- und Multimedia-Programmierung 17
J Rotieren eines 2D Images endet in Java heap space Error Spiele- und Multimedia-Programmierung 15
W Affine Transformation, Rotieren eines Objekts Spiele- und Multimedia-Programmierung 2
S Schiff in Richtung der Maus rotieren - Problem :/ Spiele- und Multimedia-Programmierung 5
Tr3kk3r Kamera nur um x und y, nicht um z achse rotieren Spiele- und Multimedia-Programmierung 2
D Dreieck um den Mittelpunkt rotieren lassen Spiele- und Multimedia-Programmierung 9
A Objekte nacheinander zeitgesteuert rotieren lassen Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben