Desenhando curvas de Bezier em Java
Método para desenhar curvas de bezier em java. Os parâmetros enviados são: os vetores x e y, o tamanho dos vetores e um Graphics que irá desenhar os elementos.
public void bezier(double []x,double[] y, int TotMarks, Graphics g){
int i=0;
while(i+3 < TotMarks){
double RangeX = ((x[i+3]-x[i])<0)?(-(x[i+3]-x[i])):(x[i+3]-x[i]);
double RangeY = ((y[i+3]-y[i])<0)?(-(y[i+3]-y[i])):(y[i+3]-y[i]);
double Step = (RangeX > RangeY)?(Step=(1.0/RangeX)):(Step=(1.0/RangeY));
double X=0,Y=0,Xant=0,Yant=0;
for(double t=0;t<=1;t+=Step){
X = (((-1*Math.pow(t,3)+3*Math.pow(t,2)-3*t+1)*x[i] + (3*Math.pow(t,3)-6*Math.pow(t,2)+3*t)*x[i+1] + (-3*Math.pow(t,3)+3*Math.pow(t,2))*x[i+2] + (1*Math.pow(t,3))*x[i+3]));
Y = (((-1*Math.pow(t,3)+3*Math.pow(t,2)-3*t+1)*y[i] + (3*Math.pow(t,3)-6*Math.pow(t,2)+3*t)*y[i+1] + (-3*Math.pow(t,3)+3*Math.pow(t,2))*y[i+2] + (1*Math.pow(t,3))*y[i+3]));
if(t == 0){
Xant=X;
Yant=Y;
}else{
g.drawLine((int)Xant,(int)Yant,(int)X,(int)Y);
Xant=X;
Yant=Y;
}
}
i+=3;
}
}
Posts relacionados:
- Desenhando curvas de Hermite em Java
- Desenhando curvas Spline em Java
- Métodos de Gauss-Seidel e Gauss-Jacobi
- Algoritmo: Ajudando a prefeitura
- Modificando Look and Feel Aparência em Interfaces Java
Tags: algoritmos, computacao grafica, java