Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1257604
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-05 09:52:20



最近在用delphi做一个小程序,要求画铁路线,线我能画出来,但是就是转折点的地方不能平滑。请高手指教一下,最好带点源码。

答案是有的。问一下您有没有用GDIPLUS单元?

没有用。跟这个有关系嘛?  
 

gdi有用

所有的图象处理的类都是继承GDIPLUS~

能不能给点实际一点的,这样讲的太泛了。

用mapx吧,delphi   +   mapx可以实现,而且很轻松

能不能改变画刷的角度的?因为我现在画斜线的时候这个图片还是原来的角度,我也想让他平行与画出来的线,旋转图片我试了一下,好像旋转后不太好,请问大家一下有没有刷子或者画笔改变角度的?  
 

其实看到楼主已经为这个事情开了好几个帖子了,其实问题很简单啊,为什么被你搞得这么复杂,不就是铁路线马?简单的铁路线就是2根长线,上边一堆小棍子,这个完全可以就用画直线和画曲线(圆,椭圆,最多Bezier)方法就解决了阿,这些都是现成的函数,无非多计算几个坐标点,有必要搞这么复杂吗?还非要Brush。  
  如果搂主的铁路不是图示(图示就是上边我说的),要画实际图,比如铁路图例很花,不是几个简单函数可以搞定,那么用Brush也可以理解,不过也不是很复杂啊,我想Brush画直线铁路你应该解决了,那剩下的就是拐弯了,这个问题你研究下有几种弯,那么就做几种弯的bitmap阿,一样brush   上去就行了,复杂点无非就是要多弄几个bitmap,不过要做的事情就这么多,没有那么多捷径的。

to   gogogo:  
      你说画铁路用两根线加小棍子我已经实现了,这个是好解决.现在我只是做的更加通用,用一个图片来做,以后我只要改变图片,就可以画另外的线条.brush画铁路能画出来,这个在水平和垂直的铁路线上一点问题没有,但是除了这两种之外的地方,铁路图片都需要旋转,世图片平行与我要画的线.就世旋转的过程中,我的图片有失真,而且两副图片不能紧靠在一起.gogogo,你高手再指点一下迷津吧.

你需要几种转弯,就预先做好几种bitmap作为brush阿,画的时候首先判断是什么弯,再调入什么brush阿,怎样使他们紧靠在一起,还不是你的bitmap和你计算的坐标问题。  
  比如画一个大曲率向右下的弯道,你向右的直线用10*10的brush画的直线铁路,比如铁路中的其中一条线路在brush中是0*3的位置,最后一次brush直线在整个图的100*100位置出现,那么我们计算你弯道brush出现的位置将是(100+10)*100=110*100的位置画右下弯道brush,这个brush由于大曲率,可能采用的brush可能就是20*20的bitmap,其中这个bitmap对应10*10中0*3那条线路位置的线路的位置在左上角的位置就应该是0*3,转弯后的位置应该是17*20,所以你把这个20*20的bitmap做好了,在110*100画上去就行了,过了弯道,下一个向下的直线铁路brush画(10*10)位置就应该是(110+20-10)*(100+20)=120*120的位置。这样表达估计比较难理解,最好边看,边画个图。



delphi2007 2008-11-05 09:37 发表评论
阅读(487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~