跪求计算机图形学 中点分割算法 C程序

如题。谢谢!如果可以的话,+上一个运行程序的界面就更好了。尽量不要调用Open-GL的函数。... 如题。谢谢!
如果可以的话,+上一个运行程序的界面就更好了。
尽量不要调用Open-GL 的函数。
展开
 我来答
百度网友a1e37b308
2010-06-27 · 超过14用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:29.7万
展开全部
在MFC下 中点画圆MidPointCirle(point.x,point.y,30,RGB(0,255,0));
函数如下:
void CCricleView::MidPointCirle(int x0,int y0,int r, COLORREF color)
{
CClientDC dc(this);
int x,y,d;
x=0;
y=r;
d=5-4*r;
CirclePoint(x0,y0,x,y,color);
while (x<=y)
{
if(d<=0) d+=8*x+12;
else {d+=8*(x-y)+20;y--;}
x++;
CirclePoint(x0,y0,x,y,color);
}
}
void CCricleView::CirclePoint(int x0,int y0,int x,int y,COLORREF color)
{
CClientDC dc(this);
dc.SetPixel(x0+x,y0+y,color);
dc.SetPixel(x0+x,y0-y,color);
dc.SetPixel(x0-x,y0+y,color);
dc.SetPixel(x0-x,y0-y,color);
dc.SetPixel(x0+y,y0+x,color);
dc.SetPixel(x0+y,y0-x,color);
dc.SetPixel(x0-y,y0+x,color);
dc.SetPixel(x0-y,y0-x,color);
}
中点画线
void CLineView::MidPointLine(int x0, int y0, int x1, int y1, COLORREF crColor)
{
CClientDC dc(this);
int a,b,dt1,dt2,d,x,y;
a=y0-y1;
b=x1-x0;
d=2*a+b;
dt1=2*(a+b);
dt2=2*a;
x=x0;y=y0;
dc.SetPixel(x,y,crColor);
while (x<x1)
{
if (d<0)
{
x++;
y++;
d+=dt1;
}
else
{
x++;
d+=dt2;
}
dc.SetPixel(x,y,crColor);
}
}
东莞大凡
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间... 点击进入详情页
本回答由东莞大凡提供
何航召英哲
2019-07-11 · TA获得超过4028个赞
知道大有可为答主
回答量:3093
采纳率:27%
帮助的人:432万
展开全部
在MFC下
中点画圆MidPointCirle(point.x,point.y,30,RGB(0,255,0));
函数如下:
void
CCricleView::MidPointCirle(int
x0,int
y0,int
r,
COLORREF
color)
{
CClientDC
dc(this);
int
x,y,d;
x=0;
y=r;
d=5-4*r;
CirclePoint(x0,y0,x,y,color);
while
(x<=y)
{
if(d<=0)
d+=8*x+12;
else
{d+=8*(x-y)+20;y--;}
x++;
CirclePoint(x0,y0,x,y,color);
}
}
void
CCricleView::CirclePoint(int
x0,int
y0,int
x,int
y,COLORREF
color)
{
CClientDC
dc(this);
dc.SetPixel(x0+x,y0+y,color);
dc.SetPixel(x0+x,y0-y,color);
dc.SetPixel(x0-x,y0+y,color);
dc.SetPixel(x0-x,y0-y,color);
dc.SetPixel(x0+y,y0+x,color);
dc.SetPixel(x0+y,y0-x,color);
dc.SetPixel(x0-y,y0+x,color);
dc.SetPixel(x0-y,y0-x,color);
}
中点画线
void
CLineView::MidPointLine(int
x0,
int
y0,
int
x1,
int
y1,
COLORREF
crColor)
{
CClientDC
dc(this);
int
a,b,dt1,dt2,d,x,y;
a=y0-y1;
b=x1-x0;
d=2*a+b;
dt1=2*(a+b);
dt2=2*a;
x=x0;y=y0;
dc.SetPixel(x,y,crColor);
while
(x<x1)
{
if
(d<0)
{
x++;
y++;
d+=dt1;
}
else
{
x++;
d+=dt2;
}
dc.SetPixel(x,y,crColor);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式