Hi, ich habe einmal meinen Physik lehrer darum gebeten, mir die formel zur Anpeilung von was auch immer zu geben.
Er gab mir diese Formel:
Das heißt, wenn im normalen Coordinaten system, nicht in dem von java, der rotationspunkt auf 0,0 liegt, sind X und Y die Coordinaten des zu anpeilenden Punktes.
Ich schrieb diesen Code hier
Aber um ehrlich zu sein, der Kasten rotiert wild umher, anstatt richtig wirklich zu funkionieren, und auf den Cursor zu zeigen, kann mir einer vielleicht helfen?
Danke Developer-X
Er gab mir diese Formel:
Code:
winkel = (Potenz aus tan und -1) * (Y/X)
Ich schrieb diesen Code hier
Java:
package game;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class Game extends JFrame implements MouseMotionListener
{
// Attributes
AlphaComposite ap;
GradientPaint gp;
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int width = getSize().width;
int height = getSize().height;
int mouseX = 1;
int mouseY = 1;
// Constructor
public Game()
{
setSize(d);
setUndecorated(true);
setLayout(new BorderLayout());
JPanel p = new JPanel()
{
public void paintComponent(Graphics g)
{
drawGame(g);
}
};
p.addMouseMotionListener(this);
add(p,"Center");
setVisible(true);
width = getSize().width;
height = getSize().height;
}
// Methods
public void drawGame(Graphics g)
{
g.setColor(Color.black);
g.fillRect(0,0,width,height);
g.setColor(Color.white);
g.translate(0,height);
((Graphics2D) g).rotate(+Math.toRadians((Math.tan(-1)*((mouseY)/(mouseX)))));
g.translate(0,-height);
g.drawRect(0,height-10,20,100);
g.translate(0,height);
((Graphics2D) g).rotate(-Math.toRadians((Math.tan(-1)*((mouseY)/(mouseX)))));
g.translate(0,-height); }
public void mouseDragged(MouseEvent arg0)
{
}
public void mouseMoved(MouseEvent arg0)
{
mouseX = arg0.getX();
mouseY = arg0.getY();
mouseY-=height;
if(mouseX==0)
mouseX++;
if(mouseY==0)
mouseY++;
repaint();
}
}
Aber um ehrlich zu sein, der Kasten rotiert wild umher, anstatt richtig wirklich zu funkionieren, und auf den Cursor zu zeigen, kann mir einer vielleicht helfen?
Danke Developer-X