计算机图形学:直线段扫描转换算法

描述三种直线扫描算法(DDA法,中点法,Bresenham法)的基本思想,分析比较这三种算法的优缺点,并用中点画线算法扫描转换连接两点P0(0,0)和P1(5,2)的直线... 描述三种直线扫描算法(DDA法,中点法,Bresenham法)的基本思想,分析比较这三种算法的优缺点,并用中点画线算法扫描转换连接两点P0(0,0)和P1(5,2)的直线段,写出算法过程及直线所经过的像素点。 展开
 我来答
wuting517
2013-12-23 · TA获得超过237个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:199万
展开全部
//数值微分算法(DDA算法)
#include<iostream>
using namespace std;
int main()
{
float x0,y0,x1,y1,x2,y2;
cin>>x1>>y1;
cin>>x0>>y0;
float k;
k=(y1-y0)/(x1-x0);
if(k<1)
{
x2=x1+1;
y2=y2+k;
}
else if(k>=1)
{
y2=y1+1;
x2=1/k+x1;
}
cout<<x2<<" "<<y2<<endl;
return 0;
}
//中点划线算法
#include<iostream>
using namespace std;
int main()
{ float x,y;
float x0,y0,x1,y1;
cin>>x0>>y0>>x1>>y1;
float a,b,c;
a=y0-y1;
b=x1-x0;
c=x0*y1-x1*y0;
float sum;
sum=a*x+b*y+c;
float Xq,Yq;
float Xm,Ym;
Xm=x0+1;
Ym=y0+0.5;
float d;
d=a*Xm+b*Ym+c;
if(d<0)
{Xq=x0+1; Yq=y0+1; }
else if(d>0)
{ Xq=x0+1; Yq=y0; }
else if(d=0)
{ Xq=x0+1; Yq=y0; }
cout<<Xq<<" "<<Yq<<endl;return 0;
}
//Bresenham算法//有一个整数数组,请求出两两之差绝对值最大的值(最小的值)
#include<iostream>
using namespace std;
int jisuan(int a,int b)
{ int des=0; des=a-b; if(des<0)
des=-des;
return des;}
int main()
{ int dec=0; int max=0; int a[5]={0,2,5,9,4}; for(int i=1;i<5;i++)
{ dec=jisuan(a[i],a[i-1]); if(max<dec) max=dec; }
cout<<max<<endl;
return 0;
}
不好意思,最后一个是我写的另一个代码,贴错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东莞大凡
2024-08-11 广告
棋盘格标定板是机器视觉与摄影测量中常用的高精度校准工具,能够精确标定相机镜头畸变及内外参数。我们东莞市大凡光学科技有限公司专业定制各类规格的棋盘格标定板,采用高精度打印技术与耐用材料,确保每个格子边缘清晰、尺寸准确,满足科研、工业检测及自动... 点击进入详情页
本回答由东莞大凡提供
kl364551911
2013-12-11 · 超过10用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:25.1万
展开全部

所有线条扫描算法实现

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式