如何使用GDI+将鼠标坐标转换为世界坐标?或者为使用GDI+绘制的SVG图形获取旧的边框(甚至更好)?
不管怎么说。我一直在寻找SVG代码,发现:
http://development.mwcs.de/svgimage.html
这是第一个真正为SVG工作的Delphi组件,但我离题了。
这个组件使用GDI+来显示圆、曲线等。
GDI+使用矩阵将世界坐标、旋转和扭曲转换为屏幕坐标。
这部分我理解。您可以使用矩阵乘法进行转换。
问题出在这个上
如果我将鼠标光标指向一个闭合的形状:
有这么多的矩阵可供选择在所有这些GDI objects.
换句话说就是
从SVG图像读取的形状是被矩阵扭曲为屏幕坐标的基元。我如何从屏幕坐标反转到坐标,我可以用来查看我是否在一个形状内。
请注意,,我需要知道我处于哪个形状。
由于SVG图像的设置方式,每个形状都有一个id,我想用它来查看我用鼠标点击了哪个区域。
编辑
Alternatively
希望你能帮助我找到所有这些扭曲的路径:-)。
发布于 2011-05-31 06:07:23
使用GDI+,您必须跟踪您正在做什么/已经做了什么,因为GDI+本身在绘制像素之后会忘记除像素本身之外的所有内容。SVG单元必须保持所有需要绘制所有形状和设置GDI+视口的东西的大头针。因此,从SVG库中获取您想要的信息会更容易。
https://stackoverflow.com/questions/5642646
复制相似问题