我必须用以下代码画一个圆
(检查点是否在圆上)。
int rad=10;
// i=x,j=y
for (int j=ymid-rad;j<=ymid+rad;j++){
for (int i=xmid-rad;i<=xmid+rad;i++){
if (((i-xmid)*(i-xmid)+(j-ymid)*(j-ymid)) == rad*rad)
Image1->Canvas->Pixels[i][j]=clRed;
}
}
但是,它仅画出圆的几个点。
我究竟做错了什么?
谢谢你。
最佳答案
您正在用整数算术完成所有这些工作;有very few integer solutions到x^2 + y^2 == r^2
(用于固定r
)。
我建议改用midpoint circle algorithm之类的东西。