• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Matlab
  • 标签: MATLAB  Bresenham  画圆  

资源简介

用MATLAB实现Bresenham 画圆 输入参数为圆的(圆心横坐标,圆心横坐标,半径)

资源截图

代码片段和文件信息

function [XY]=Bresenhamcircle(x0y0r)
X=ones(11000);
Y=X;                                      %坐标向量,用于存储绘制的点的坐标
x1=X;x2=X;x3=X;x4=X;x5=X;x6=X;x7=X;x8=X;
y1=Y;y2=Y;y3=Y;y4=Y;y5=Y;y6=Y;y7=Y;y8=Y;  %将圆对称划分为8个部分,分别用xi,yi记录坐标
D=ones(11002);                           %判别向量
i=1;
x1(1)=x0;x2(1)=x0+r;x3(1)=x2(1);x4(1)=x0;x5(1)=x4(1);x6(1)=x0-r;x7(1)=x6(1);x8(1)=x1(1);
y1(1)=y0+r;y2(1)=y0;y3(1)=y2(1);y4(1)=y0-r;y5(1)=y4(1);y6(1)=y0;y7(1)=y6(1);y8(1)=y1(1);     %初始条件
xd=2^(1/2)/2*r+x0;
while x1(i)    i=i+1;
    x1(i)=x1(i-1)+1;y2(i)=y2(i-1)+1;y3(i)=y3(i-1)-1; x4(i)=x4(i-1)+1; x5(i)=x5(i-1)-1;y6(i)=y6(i-1)-1;y7(i)=y7(i-1)+1; x8(i)=x8(i-1)-1;         %计长方向总加1
    D(i)=2*(y1(i-1)-y0-(r^2-(x1(i)-x0)^2)^(1/2))-1;
    if D(i)<0
        y1(i)

评论

共有 条评论