一、 实验内容
利用 Bresenham 画线算法和中点画圆算法画一个小房子。小房子包括直线
和圆。
二、 实验设计
1、画线函数设计
采用 Bresenham 画线算法,输入参数为起点坐标和终点坐标。注意,此
算法斜率 k 满足 0<=k<=1,且 x1<x2。返回值为直线段各点的坐标。使用时
运用对称即可得到任意斜率的直线。
2、画圆算法设计
采用中点画圆算法,通过重新推导书中的算法(书中算法圆心为坐标原点,
且仅为 1/8 圆),利用对称等方法,设计出可以指定圆心和半径的圆。输入参
数为圆心坐标和半径,输出为圆的各点坐标。
三、 详细代码
1、画线算法 M 文件如下
function [ line ] = BresenhamLine( x1,y1,x2,y2 )
x=x1;
y=y1;
dx=x2-x1;
dy=y2-y1;
p=2*dy-dx;
k=dy/dx;
line=[];
if(k>=0&&k<=1)
for x=x1:x2
tem=[x,y];
line=[line;tem];% 动态矩阵追加方式之一,每次追加一行
if (p>=0)
y=y+1;
p=2*(dy-dx)+p;