如何裁剪直线?
我有很多直线需要在一个指定的范围内显示,范围是矩形的,为了提高速度,我想超出范围的部分不画,所以要在画之前裁剪一下,不知有没有现成的裁剪函数,给一条直线和一个矩形就能返回直线有没有落在矩形内,裁剪后的直线是什么? 问题点数:20、回复次数:8Top
1 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-03-23 16:31:00 得分 4
int SelectClipRgn(
HDC hdc, // handle to DC
HRGN hrgn // handle to region
);Top
2 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-03-23 16:34:00 得分 4
hdc即要画的控件的属性->Canvas->HandleTop
3 楼SuperQM(乖乖龙)回复于 2001-03-23 17:45:00 得分 0
对不起,我忘了说我的画线函数是自己写的,在内存中画,然后一次性写屏,所以不能用SelectClipRgnTop
4 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-03-23 18:06:00 得分 4
呵呵,那就更好办了,设置四个全局(相对的)变量为画图有效范围,不管画什么都有用,画线的时候运算一下就可以了。Top
5 楼dbxmcf(刀板虾米)回复于 2001-03-24 18:26:00 得分 4
图形学书上好象有专门的裁剪算法,用该算法替代画直线的函数Top
6 楼SuperQM(乖乖龙)回复于 2001-04-18 18:36:00 得分 0
画线时运算,每点吗?那会很慢的
图形学的裁剪算法……我有点懒喔Top
7 楼chinaha(chinaha)回复于 2001-04-19 00:10:00 得分 4
很简单指定Tcanvas的ClipRect即可,这就是要作图的区域。Top
8 楼SuperQM(乖乖龙)回复于 2001-06-11 18:50:00 得分 0
the end.Top




