J
Java-Noob002
Gast
Hallo!
Ich habe vor eine BSpline-Kurve zu zeichnen. Komme nicht mit der Fehlermeldung zurecht.
Hoffe es kann mir jemand helfen.
Hier der Quelltext:
Fehlermeldung:
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:130: incompatible types
found : java.awt.Point
required: Point
Point p = e.getPoint();
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:149: incompatible types
found : java.awt.Point
required: Point
P[M] = e.getPoint();
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:169: incompatible types
found : java.awt.Point
required: Point
Point p = e.getPoint();
3 errors
BUILD FAILED (total time: 0 seconds)
Ich habe vor eine BSpline-Kurve zu zeichnen. Komme nicht mit der Fehlermeldung zurecht.
Hoffe es kann mir jemand helfen.
Hier der Quelltext:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Math;
import java.applet.*;
public class BSpline extends Applet
implements MouseListener, MouseMotionListener
{
Image buffer;
Graphics bg;
int M;
final int maxM = 8;
Point P[];
int drag = 0;
public void init()
{
addMouseListener(this);
addMouseMotionListener(this);
setBackground(Color.white);
Dimension d = getSize();
buffer = createImage(d.width, d.height);
}
public void start()
{
M = 0;
P = new Point[maxM+1];
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
double x, y;
double t, dt;
double c;
int k;
final int numberOfDivision = 1000;
dt = 1.0 / (double)numberOfDivision;
if(bg == null)
bg = buffer.getGraphics();
Dimension d = getSize();
bg.setColor(Color.white);
bg.fillRect(0, 0, d.width, d.height);
if(M >= 1)
{
for(t = -1.0; t < M; t += dt)
{
x = 0;
y = 0;
for(int j = -2; j <= M+2; j++)
{
k = j;
if(k < 1)
k = 1;
if(k > M)
k = M;
c = coefficent(t - j);
x += (double)P[k].x * c;
y += (double)P[k].y * c;
}
bg.setColor(Color.gray);
bg.drawLine((int)x, (int)y, (int)x, (int)y);
}
}
for(int i = 1; i <= M; i++)
{
if(drag == i)
bg.setColor(Color.red);
else
bg.setColor(Color.blue);
bg.fillOval(P[i].x-2, P[i].y-2, 5, 5);
if(i != M)
{
bg.setColor(Color.blue);
bg.drawLine(P[i].x, P[i].y, P[i+1].x, P[i+1].y);
}
}
g.drawImage(buffer, 0, 0 ,this);
}
private double coefficent(double t)
{
double r;
if(t < 0.0)
t = -t;
if(t < 1.0)
r = (3.0 * t * t * t -6.0 * t * t + 4.0) / 6.0;
else if(t < 2.0)
r = -1.0 * (t - 2.0) * (t - 2.0) * (t - 2.0) / 6.0;
else
r = 0.0;
return r;
}
public void mousePressed(MouseEvent e)
{
Point p = e.getPoint();
drag = 0;
for(int i = 1; i <= M; i++)
{
if(p.x <= P[i].x +3 && p.x >= P[i].x -3 &&
p.y <= P[i].y +3 && p.y >= P[i].y -3)
drag = i;
}
repaint();
}
public void mouseClicked(MouseEvent e)
{
if(M < maxM)
{
M++;
P[M] = e.getPoint();
}
}
public void mouseReleased(MouseEvent e)
{
drag = 0;
repaint();
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mouseMoved(MouseEvent e)
{
}
public void mouseDragged(MouseEvent e)
{
Point p = e.getPoint();
if(drag != 0)
P[drag] = p;
repaint();
}
}
class Point
{ int x, y;
Point(int x, int y){this.x = x; this.y = y;}
}
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:130: incompatible types
found : java.awt.Point
required: Point
Point p = e.getPoint();
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:149: incompatible types
found : java.awt.Point
required: Point
P[M] = e.getPoint();
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:169: incompatible types
found : java.awt.Point
required: Point
Point p = e.getPoint();
3 errors
BUILD FAILED (total time: 0 seconds)
Code: