【发布时间】:2017-06-16 19:34:12
【问题描述】:
这个问题已经部分回答(Make +y UP, Move Origin C# System.Drawing.Graphics),如果我无法在 SO 上找到简单的解决方案,我深表歉意。
我需要绘制来自标准图形的 X、Y 图形点,其中原点 (0,0) 位于表单的中心,+Y 坐标沿垂直方向移动。请参阅标准 X、Y 绘图的附图。
如何重新配置表单,使原点 (0,0) 位于表单的中心而不是左上角,并且 +Y 坐标以垂直方式绘制?注意:我真的在尝试进行多边形命中测试,但在原点位于中心的标准 X、Y 绘图图中,而不是像 .Net Windows Forms 那样的左上角。这是我想要的:
- 命中测试 - 我真的想在这里进行命中测试,而不是创建图表,所以我认为我不能使用 3rd 方图形库。
- 点 - 我将使用 PointF 点,我不想“翻转”或转换单个点,我宁愿在表单加载时重新配置表单
- Windows 窗体设置 - 我想要一个使用 ScaleTransform 之类的东西重新配置窗体或容器的解决方案,而不是如上所述的翻转点
- Windows 窗体大小 - 我不需要知道窗体的像素宽度,在窗体启动时,应该处理这个
- Windows 窗体调整大小 - 调整大小对我来说并不重要,它可以在应用启动后保持静态
【问题讨论】:
-
考虑使用现有的图形库。除非您有非常独特的需求,否则您最好只获取一份 ZedGraph 的副本,而不是自己尝试这样做。
-
e.Graphics.TranslateTransform(this.ClientSize.Width / 2, this.ClientSize.Height / 2);然后画出你的观点。点 0, 0 会在中间。 -
请注意,链接帖子中接受的答案实际上并未显示使用 TranslateTransform,尽管这是 key!
标签: c# .net forms winforms graphics