CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  图形图像/机器视觉

【求助】虚线[宽画笔]画椭圆的算法!

楼主dongpy(51-->ARM)2006-03-16 15:17:15 在 专题开发/技术/项目 / 图形图像/机器视觉 提问

RT,用宽画笔(画笔宽度大于1),画虚线(包括破折线、点划线等等),请教一个比较实用的算法。  
   
  P.S.宽画笔实线的椭圆、细画笔虚线的椭圆,都比较好实现,就是宽画笔虚线的椭圆没有想到好方法。  
   
   
   
  问题点数:50、回复次数:13Top

1 楼dongpy(51-->ARM)回复于 2006-03-16 16:30:24 得分 0

有没有人啊?  
   
  如何画带线宽的虚线椭圆?  
   
  大家帮帮忙啊~~~Top

2 楼dongpy(51-->ARM)回复于 2006-03-16 19:50:28 得分 0

有人吗?     Up~Top

3 楼dongpy(51-->ARM)回复于 2006-03-21 12:40:49 得分 0

没人回答,请求斑竹强制结帖!Top

4 楼canybox(一生只愿,爱你一人)回复于 2006-03-21 16:47:34 得分 0

MFC里有point函数啊,直接在一个输出变量里写因变量就可以了  
  如:  
  y=x*x+x+3  
  就可以了Top

5 楼dongpy(51-->ARM)回复于 2006-03-31 12:25:39 得分 0

晕~,嵌入式平台,没有MFC。  
   
  要从画点做起~Top

6 楼Kvci(看了不笑就没小JJ同时又比较长的昵称__——————————————————————————————)回复于 2006-03-31 16:00:34 得分 0

自己画啊  
  先实现宽实线画椭圆  
  宽实线其实就是几个差不多的细实现  
  比如直径为8,线宽为5的实线圆  
  就可以看成是直径分别10、9、8、7、6五个细线圆  
  再虚线Top

7 楼dongpy(51-->ARM)回复于 2006-04-01 11:28:52 得分 0

宽实线没有问题。  
   
  关键是宽虚线如何实现?Top

8 楼big_jin2001()回复于 2006-04-11 16:30:19 得分 0

我写过画铁路线的程序,也能解决你这个问题!Top

9 楼zzwu(未名)回复于 2006-04-11 16:55:28 得分 0

不知道你是要用什么现成的语句来实现?  
  还是完全自己用一个象素一个像素地产生?  
  Top

10 楼zzwu(未名)回复于 2006-04-11 17:18:41 得分 0

在delphi(Borland   pascal)和BCB(Borland   C)中都用:  
   
      SetLineStyle(LineStyle:   Word;   Pattern:   Word;   Thickness:   Word);  
   
  来设置线的形式,  
   
  其中LineStyle的值取  
            0,1,2,3,4  
  时分别设置线为  
      实线、点线、短划线、点划线和用户用Pattern定义的线  
   
  而Thickness代表线宽。  
   
  设置好线的形式后,再用  
   
        moveto(x1,y1),lineto(x2,y2)  
        ellipse(x1,y1,x2,y2)  
   
  来画直线或园(或椭圆),它们就是你要的图形了。  
   
  Top

11 楼zzwu(未名)回复于 2006-04-11 17:27:31 得分 30

完全自己用一个象素一个像素地产生就比较繁,  
  通常采用bresenham算法来画线和园(椭圆),  
  但为了画好每一段粗短线,你要把它作为一个  
  有旋转角度的填充矩形来对待。  
  Top

12 楼navi_dx()回复于 2006-04-11 18:57:06 得分 20

一般的画宽线的算法是转换为填充矩形(包括   Win32   GDI),但是效率不高,如果只是画宽线可以修改bresenham算法,使其支持宽图元,唯一的问题就是Cap要画得好看不太容易,我自己做过一个画宽线算法比GDI效率高25%左右,画宽虚线就比较麻烦了,暂时没有很高效的实现办法。有谁高效实现过请共享一下Top

13 楼dongpy(51-->ARM)回复于 2006-04-13 11:27:13 得分 0

实线宽画笔的椭圆是通过填充内圈、外圈的扫描点实现的。  
   
  虚线宽画笔的椭圆肯定不能这样做了。。。。。。  
   
  到现在也没想出个易实现又高效的算法来。Top

相关问题

  • 求椭圆算法
  • 椭圆公章的算法
  • 想请教一下用vc画椭圆的算法
  • 有没有椭圆曲线算法方面的资料?
  • 各位高人,帮我一下,求椭圆的算法
  • 椭圆弧算法的rx,ry代表什么?
  • 高分求霍夫变换的椭圆检测算法
  • 求椭圆弧长度的算法(已知起始终止角度,椭圆长短半径)
  • 求解算法,在客户区画一个椭圆,怎样使椭圆围绕中心点旋转呢?
  • 哪里可以找到椭圆曲线算法资料和源文件,先送50,找到后送分300

关键词

  • 算法
  • word
  • 虚线
  • 椭圆
  • 画笔
  • 实线
  • 线宽
  • 宽线
  • 划线
  • 实现

得分解答快速导航

  • 帖主:dongpy
  • zzwu
  • navi_dx

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo