CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

怎样才能作出具有橡皮泥似的线条?

楼主zbc(修身养息,百战不怠)2002-11-01 19:53:38 在 C++ Builder / 基础类 提问

大家好,       我想作一条具有橡皮泥似的线条,   也就是当我在线条的中间用鼠标来拉伸时,它会根据鼠标的位置来发生变形,注意,它的连接处要保持圆滑的过渡,       能说说它的原理吗? 问题点数:20、回复次数:9Top

1 楼zbc(修身养息,百战不怠)回复于 2002-11-01 20:51:49 得分 0

有没搞错,     怎么没人啊?Top

2 楼weibz0525(小虫)回复于 2002-11-02 07:27:24 得分 0

一时说不清楚,好多,  
  有代码,你要不要?留下emailTop

3 楼xiaodongisme(散步的鱼)回复于 2002-11-02 08:31:55 得分 0

也给我一份吧,拜托  
  xiaodong_ishere@163.comTop

4 楼zbc(修身养息,百战不怠)回复于 2002-11-03 16:32:57 得分 0

谢谢,我要,eml为zbcgsx@163.netTop

5 楼TopCat(令狐虫)回复于 2002-11-03 18:12:14 得分 20

没必要搞得这么神秘吧?  
  其实贝塞耳曲线(Bezier   Curve)在Windows里有内建的支持,有两个API函数PolyBezier和PolyBezierTo就可以画贝塞耳曲线。  
   
  在BCB的TCanvas里同样对这两个函数进行了封装。下面是一个用PolyBezier函数画曲线的例子:  
          //以下仅为测试数据  
          TPoint   point[4];  
          point[0]   =   TPoint(0,   100);  
          point[1]   =   TPoint(130,   300);  
          point[2]   =   TPoint(140,   10);  
          point[3]   =   TPoint(200,   100);  
   
          Canvas->PolyBezier(point,   3);  
   
  众所周知,贝塞耳曲线用四个点确定一条曲线,因此我们定义了一个4位的TPoint数组。其中第一个点决定曲线的起点,第四个点决定曲线的终点。第二和第三个点决定曲线的曲率,在程序里,我们只要想办法决定四个点的位置就可以画出贝塞耳曲线了,一点都不难。(决定四点位置的一种方法可以参考画图程序里画曲线的方法。更好的方法是Photoshop里路径的画法——总之是由你的聪明才智所决定了。)  
   
  PolyBezier的第一个参数就是这个TPoint数组,第二个参数是最后一点的Index值,所以是3。  
   
  PolyBezierTo函数跟PolyBezier区别不大,唯一的区别就是只需要三个点坐标,第一个点的坐标由之前调用的MoveTo函数决定(想想LineTo是怎么做的)。当然,对应的,第二个参数的值也变成了2。Top

6 楼bufanxiong(bufanxiong)回复于 2002-11-03 19:05:04 得分 0

to     weibz0525(小虫)   :  
  你好!  
  你的代码我也想学习学习:)  
  bufanxiong@sohu.comTop

7 楼weibz0525(小虫)回复于 2002-11-03 19:17:50 得分 0

我从书上扒的,真不好意思,呵呵,要的就给。Top

8 楼weibz0525(小虫)回复于 2002-11-04 07:10:21 得分 0

给你们发送都失败,不知为何?Top

9 楼tjzzx888(青草)回复于 2002-11-04 09:05:51 得分 0

to     weibz0525(小虫)   :  
  你好!  
  也给我一份吧  
  tjzzx8@eyou.comTop

相关问题

  • 怎样才能画线条
  • 怎样才能作出 WIN98 的 CHM 格式的帮助文档?
  • 图象处理方向怎么样才能作出成就?
  • 怎样才能制作出浮动窗体的效果?
  • 请问怎样才能把grid型数据窗口中的那些线条去掉?
  • pb数据窗口打印如何才能打出grid的线条,难道要在报表中划线吗?
  • OpenGL:一定要“打开颜色混合”开关,才能 采用“线条、面反走样”吗 ???多谢指教!
  • 怎么才能在最短的时间内作出软件来???(郁闷)
  • 怎样才能作出漂亮的图形界面,在线等候
  • 怎样才能制作出像Duwamish7那样的msi安装文件

关键词

  • 函数
  • 线条
  • 曲线
  • tpoint
  • polybezier
  • 贝塞耳
  • 决定
  • 参数
  • point
  • 方法

得分解答快速导航

  • 帖主:zbc
  • TopCat

相关链接

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

广告也精彩

反馈

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