社区
图形处理/算法
帖子详情
求教一个底层的问题
hy1080
2004-11-29 09:55:42
用写点的办法画一条任意直线
最好有源码有讲一下具体过程
写点函数可以用任意环境的写点函数,
偶主要是这个算法
用C完成
解决后再送100分
...全文
115
8
打赏
收藏
求教一个底层的问题
用写点的办法画一条任意直线 最好有源码有讲一下具体过程 写点函数可以用任意环境的写点函数, 偶主要是这个算法 用C完成 解决后再送100分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hy1080
2004-12-02
打赏
举报
回复
对了,还得说一句这个函数在粗线下会出点小问题,
所以最好给一个单线条的,直线和虚线的函数。
成功后定送100分,最近赖,不想分析程序,谢谢
hy1080
2004-12-02
打赏
举报
回复
to handwolf(初学者)
那要是画虚线呢?
真接给个函数吧
handwolf
2004-11-29
打赏
举报
回复
Bresenham直线的绘画算法,网上很多,你可以多搜索,还有一个dda算法的!
handwolf
2004-11-29
打赏
举报
回复
上面的程序,算法是不变的,应该很容易改成你需要的!
hy1080
2004-11-29
打赏
举报
回复
我在嵌入式系统里面用,所但可以把TC里的画点函数给转化成
嵌入式里的函数。有人作了一份说是有误差所以我就在里,请教一下。谢谢了:)
handwolf
2004-11-29
打赏
举报
回复
如果是win32程序;我刚给你写了一个!
///////////////////////////////////////////////////////BresenhamLine
//功能--绘画线条
//hDC--绘图设备句柄
//ptStart--线段起点
//ptEnd--线段终点
//color--线条颜色
//npenWidth--线条宽度
//author--handwolf
//create time--2004.11.29
//////////////////////////////////////////////////////
void BresenhamLine(HDC hDC,POINT ptStart,POINT ptEnd,COLORREF color,int npenWidth)
{
int x1=ptStart.x,y1=ptStart.y,
x2=ptEnd.x,y2=ptEnd.y;
int i,dx,dy,di,const1,const2,inc,tmp;
inc=1;
dx=x2-x1;
dy=y2-y1;
if(fabs(dx)>fabs(dy))
{
if(dx<0)
{
tmp=x1;x1=x2;x2=tmp;
tmp=y1;y1=y2;y2=tmp;
dx=-dx;dy=-dy;
}
if(dy<0)
{
inc=-1;
dy=-dy;
}
di=2*dy-dx;
const1=2*(dy-dx);
const2=2*dy;
for(i=0;i<npenWidth;i++)
{
SetPixel(hDC,x1+i,y1,color);
SetPixel(hDC,x1,y1+i,color);
}
while(x1<x2)
{
x1++;
if(di>=0)
{
y1+=inc;
di+=const1;
}
else
{
di+=const2;
}
for(i=0;i<npenWidth;i++)
{
SetPixel(hDC,x1+i,y1,color);
SetPixel(hDC,x1,y1+i,color);
}
}
}
else
{
if(dy<0)
{
tmp=x1;x1=x2;x2=tmp;
tmp=y1;y1=y2;y2=tmp;
dx=-dx;dy=-dy;
}
if(dx<0)
{
inc=-1;
dx=-dx;
}
di=2*dx-dy;
const1=2*(dx-dy);
const2=2*dx;
for(i=0;i<npenWidth;i++)
{
SetPixel(hDC,x1+i,y1,color);
SetPixel(hDC,x1,y1+i,color);
}
while(y1<y2)
{
y1++;
if(di>=0)
{
x1+=inc;
di+=const1;
}
else
{
di+=const2;
}
for(i=0;i<npenWidth;i++)
{
SetPixel(hDC,x1+i,y1,color);
SetPixel(hDC,x1,y1+i,color);
}
}
}
}
handwolf
2004-11-29
打赏
举报
回复
楼主是打算在哪里用呢?
是tc下吗?
晨星
2004-11-29
打赏
举报
回复
清华大学出版社《计算机图形学》上面有。
ICSharpCode.SharpZipLib.rar
ICSharpCode.SharpZipLib.dll,项目中需要使用压缩解压操作时,会用到ICSharpCode.SharpZipLib这个dll,为了不浪费大家的时间,我把我当时找到的资源发出来分享一下
c语言数据结构
底层
问题
,
求教
为什么在循环中会发生变异
#include <stdio.h> #include <stdlib.h> #define MAXDISTANCE 9999//假如两个顶点没有 直接 的路径,它们之间的权值就用这个来表示 #define MAX_VERT_NUM 10 typedef int Bool; #define False 0 #define True 1 struct Graph { ch...
新人
求教
,蓝牙BLE新手
问题
刚刚来公司实习,第一次接触蓝牙开发,然后公司的项目是ble的,他们做了
底层
的板子一样的东西,让我学习去做一个app,用来接收从板子发送过来的信息。 现在的
问题
是,我不知道应该如何下手,蓝牙BLE的知识倒是看了不少,但是还是不太清楚具体该如何去做,应该怎么去和
底层
的东西去对接?还有,我需要去对接的人那边拿哪些资料?通讯协议? 对了对了,android基础还是有一点的,我想要知道的是我应该
人与人最根本的差距,是
底层
可迁移能力
我经常说,人与人最根本的差距,是
底层
可迁移能力。所谓的低层可迁移能力,是指不论从事什么行业都用得上的能力,比如:沟通、时间管理、解决
问题
、快速学习的能力等等。今天就来聊聊,如何快速成为一个领域的高手。许多咨询行业的咨询顾问能够在短时间内快速成为领域的专家,哪怕这个行业是个全新的领域,他们都能够快速掌握。这其中的诀窍,除了咨询公司有丰富的专业资料以外,还有一个重要的原因是咨询顾问们掌握了主题阅读法。...
求教
到底要怎样做才能是一名合格的构架师
今天收到了猎头的回复,技术方面有待提高,虽然我有料到成功可能性不大,但是突然收到这个回复还是让我更加失落,来上海的那天我就告诉自已一定要做到构架师再回武汉,眼看来上海两年多了,虽然我现在是一个project leader,管理,技术构架什么都做,可是却没有一样精的,本来也没打算换工作的,其实在这里公司小点做的还蛮开心的,就是薪水太低,还不如一个大一点公司的高级工程师,出去和朋友聊天都不敢说自已是l...
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章