如何在android应用程序中实现扫描线多边形填充算法?
我想创建一个android应用程序,其中扫描线多边形填充算法用于填充它 我已经用线画出了多边形 画了4条线 我用过这个代码 类DrawView扩展了视图{如何在android应用程序中实现扫描线多边形填充算法?,android,polygon,Android,Polygon,我想创建一个android应用程序,其中扫描线多边形填充算法用于填充它 我已经用线画出了多边形 画了4条线 我用过这个代码 类DrawView扩展了视图{ Paint paint = new Paint(); public DrawView(Third_Activity third_Activity) { super((Context) third_Activity); paint.setColor(Color.RED); pai
Paint paint = new Paint();
public DrawView(Third_Activity third_Activity) {
super((Context) third_Activity);
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
}
@Override
public void onDraw( Canvas canvas) {
super.onDraw(canvas);
canvas.drawLine(250, 100, 100, 402, paint);
canvas.drawLine(99, 400, 150, 500, paint);
canvas.drawLine(150, 500, 300, 600, paint);
canvas.drawLine(300, 600, 250, 100, paint);
a[0][0]=250;
a[0][1]=100;
a[1][0]=100;
a[1][1]=402;
a[2][0]=99;
a[2][1]=400;
a[3][0]=150;
a[3][1]=500;
a[4][0]=150;
a[4][1]=500;
a[5][0]=300;
a[5][1]=600;
a[6][0]=250;
a[6][1]=100;
a[7][0]=150;
a[7][1]=500;
for(i=0;i<7;i++)
{
dy=a[i+1][1]-a[i][1];
dx=a[i+1][0]-a[i][0];
if(dy==0)
slope[i]=(float) 1.0;
if(dx==0)
slope[i]=(float) 0.0;
if((dy!=0)&&(dx!=0))
{
slope[i]=(float)dx/dy;
}
}
for(y=0;y<900;y++)
{
k=0;
for(i=0;i<7;i++)
{
if(((a[i][1]<=y) && (a[i+1][1]>y)) || ((a[i][1]>y) && (a[i+1][1]<=y)))
{
xi[k]=(int)(a[i][0]+slope[i] *(y-a[i][1]));
k++;
}
}
for(j=0;j<k-1;j++)
for(i=0;i<k-1;i++)
{
if(xi[i]>xi[i+1])
{
temp=xi[i];
xi[i]=xi[i+1];
xi[i+1]=temp;
}
}
for(int p=0;p<10;p++)
{
canvas.drawLine(100,700, 200, 700, paint);
for(i=0;i<k;i+=2)
{
canvas.drawLine(xi[i],y,xi[i+1],y,paint);
}
}
}
}
油漆=新油漆();
公共绘图视图(第三个活动第三个活动){
超级((上下文)第三次_活动);
油漆。设置颜色(颜色。红色);
油漆。设置行程宽度(5);
}
@凌驾
公共空白onDraw(画布){
super.onDraw(帆布);
帆布.抽绳(250100100402,油漆);
帆布.抽绳(99400150500,油漆);
帆布.抽绳(150500300600,油漆);
帆布.抽绳(300600250100,油漆);
a[0][0]=250;
a[0][1]=100;
a[1][0]=100;
a[1][1]=402;
a[2][0]=99;
a[2][1]=400;
a[3][0]=150;
a[3][1]=500;
a[4][0]=150;
a[4][1]=500;
a[5][0]=300;
a[5][1]=600;
a[6][0]=250;
a[6][1]=100;
a[7][0]=150;
a[7][1]=500;
对于(i=0;只包含重要代码),代码有什么错误?输出除外?您能在问题中更具体吗?这个代码画了一些线……并用它的一些线填充了多边形(那行)……我想添加延迟……就像我们在C或C++中那样做。