图形旋转的问题,很急,救救我! (100分)

孙老师,吕雪松……你们在哪里啊?
 
帮忙帮到底了。
我看了GDITest的例子,应该可以满足你的需要。
邮件拿来发给你吧,希望有用。
 
好人那!!!
shanghuaguo@sina.com 谢谢!
 
tingjie:
再次感谢你的真诚帮助!怎样才能给你单独加分?
guiplus确实包含了对象旋转,变形等大量的图形处理方法,可是如果用它,我前期的
工作全部得重做。而且这种方法其实跟我上面提到的在继承原有类的基础上添加方法是
一样的道理,还是比较麻烦。不过guiplus真是个好东东:)
请高手继续赐教……
 
to gsh2000:
我在学计算机图形学课程是做过类似的小程序,如果你不想用控件的话可以参考《计算机图形学》
第三版)、清华、孙家广、P358 关于图形变换一章。基本算法或许对你有帮助。
 
to gsh2000,虽然帮不上什么忙。但不知道,能否把老兄说的这个guiplus,发一份给
小弟可否?

谢谢了~

em:doll-paul@263.net
 
你可以对每个图元设定一个visiable的属性,如果该图元是用户可视的,那么你就得重绘。
也就是说只重绘那些用户可见的部分。而对图元进行的数学变换在内部做就行了。

当然你得注意由于坐标变换导致有些图元可视性的变化。
 
警告!!!
gsh2000 您有作弊的嫌疑。我已投诉:
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1893693
具体内容如下:
gsh2000 和 shanghuaguo 与 fafafa
http://www.delphibbs.com/delphibbs/listq.asp?type=2&userfrom=shanghuaguo
http://www.delphibbs.com/delphibbs/listq.asp?type=2&userfrom=gsh2000
http://www.delphibbs.com/delphibbs/dispu.asp?username=fafafa
 
To 小雨哥:
呵呵,真是屋漏偏逢连夜雨,提完这个问题就剩0分了,本想骗点分额外奖励对我提供过
真诚帮助的朋友,包括tingjie,info,zrj……,初来咋到,违反了游戏规则,给各位致歉
了!另外,我将戒网10小时,即以反省:)请各位继续关注我的问题。

winer_jm ,gmwu:
谢谢你们!我使用了cadodraw控件,每个图元是有一个visble属性的,关于可视化的一系列问题
已经解决。现在是想找一条捷径来解决整个图形的旋转及旋转后的再编辑问题。难道真的
只能通过给每个图元实例增加相应旋转方法来实现?没有什么方法可以直接操纵逻辑坐标
系的旋转?
高手们,请继续为我提供思路……
winer_jm:
已发,请查收!
 
我看过一点关于世界坐标变换的,具体也不太熟悉,
世界坐标是由一个变换矩阵来控制,也就是
|1 0 0|
|x' y' 1| = |x y 1| * |0 1 0|
|Dx Dy 1|
大概是吧,那本书不再手边,而且也没有电子版,好像80多,
在MSDN里边有一些介绍,可惜都是E文,
我觉得和你的问题是对路的
btw GDI+东西不错,但也没有什么神奇的,不过是对GDI的对象封装罢了,
GDI+能干的,GDI都能干,

我对图形方面所知不多,孤陋寡闻,仅是提供思路
 
我曾经找到过简单的旋转,至于你说的那种没有见到过。如果你会了别忘了告诉我,我
给你分。
 
to gsh2000,发错人了吧???我没收到!

doll-paul@263.net
 
俺对图象处理不在行....
 
呵呵,被抓住了。问题还没解决吗?
逻辑坐标系的旋转应该要系统一级来支持的,我们只用通过自己写程序来模拟这种结果,
你恐怕一定要找算法写代码了。
再说一下gdipuls有:gdiprotateworldtransform函数,不过我没找到详细的解释,应该
使用用来旋转坐标系的。不过你程序改动太大,恐怕对你没有什么帮助。
我想你可以在程序中(可以封装到类里)记录坐标系的旋转矩阵,然后按照正常的坐标系作图,
再旋转你的图元然后显示出来。
一点建议不知是否对你有帮助。
 
被列入黑名单24小时,刚解放,呵呵……请新手们引以为戒
tingjie网友给我发的gdiplus给了我很大的启发,查找有关资料得知:windows支持一种称为世界坐标空间的坐标模式,在gdi32的支持下可以实现世界坐标系到页面坐标系的变换,其中有个setworldtransform 就可以实现对世界坐标系的旋转,平移等一系列操作。它的相关文档中有如此一说:“对世界坐标系,如果你能计算正确的变换,可以在不同的地方重复使用相同的代码绘制不同的形状”,哈哈,这正是我所想要的东西!饶了一个大圈,结局就是这个函数的调用,问题得到解决……
首先要感谢的是tingjie,他在整个问题的解决过程中给予了我大量的热心帮助;还有zjan521,他的关于世界坐标系的提示也起到了重要作用!可惜不能给你们额外加分,再次致谢!
这个问题得到了这么多朋友的帮助,真的很开心,谢谢你们!
把贴结了吧,分太少了:(
可千万别嫌少,等我有钱了……哈哈
 
顶部