• 大小: 475KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-07-16
  • 语言: Matlab
  • 标签: matlab  

资源简介

bresenham画圆理论并介绍了一种改进的画圆方法及matlab实现

资源截图

代码片段和文件信息

%%改进的bresenham画圆方法,给定半径,画圆
%bresenham_improving(r)
%初始值
r=input(‘r=‘);

x=0;y=r;c=[xy];
p=2*r-3;px=-6;py=4*r-4;

while(x    if(p>=0)
        x=x+1;y=y;
        p=p+px;
        px=px-4;
        c=[c;xy];
    else
        x=x+1;y=y-1;
        p=p+px+py;
        px=px-4;
        py=py-4;
        c=[c;xy];
    end
    
end
cs=size(c1);
ct=[];c1=[];
if (c(cs2)==0)
    ct=[];
elseif(c(cs1)>=c(cs2))
    ct=c(1:cs-1:);
else
    ct=c;
end
cts=size(ct1);
for i=1:cts
    c1(i1)=c(cts-i+12);
    c1(i2)=c(cts-i+11);
end

cw=[c;c1];
as=size(cw1);
if(cw(as2)==0)
    b_sec=zeros(as-22);d_for=zeros(as-22);
    for m=1:as-2
    b_sec(m1)=-cw(as-m1); b_sec(m2)=cw(as-m2);
    d_for(m1)=cw(as-m1);  d_for(m2)=-cw(as-m2);
    end
else
    b_sec=zeros(as-12);d_for=zeros(as-12);
    for n=1:as-2
    b_sec(n1)=-cw(as-n1); b_sec(n2)=cw(as-n2);
    d_for(n1)=cw(as-n1);  d_for(n2)=-cw(as-n2);
    end
end
    c_th=zeros(as2);
    mr=[];
    
    c_th(:1)=-cw(:1);  c_th(:2)=-cw(:2);
   
    mr=[cw;d_for;c_th;b_sec]; 
    plot(mr(:1)mr(:2));hold on;
    y11=[];
    y22=[];
    x1=[];
    for x=0:0.1:r
        x1=[x1;x];
        y1=sqrt(r^2-x^2);y11=[y11;y1];
        y2=-sqrt(r^2-x^2);y22=[y22;y2];
    end
    plot(x1y11‘r‘);hold on;
    plot(-x1y11‘r‘);hold on;
    plot(x1y22‘r‘);hold on;
    plot(-x1y22‘r‘);hold on;
    
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     191034  2009-11-02 14:36  画圆\3种画圆算法的优劣分析.pdf

     文件       1462  2010-01-06 18:09  画圆\bresenham_circle_improving.m

     文件      46080  2009-11-05 11:12  画圆\bresenham画圆思想.doc

     文件     164519  2009-11-09 10:49  画圆\Bresenham画圆算法的改进.pdf

     文件     501342  2009-11-05 10:02  画圆\计算机图形学-编程 - docin_com豆丁网.mht

     目录          0  2010-03-24 10:05  画圆

----------- ---------  ---------- -----  ----

               904437                    6


评论

共有 条评论