gpt4 book ai didi

c# - 使 +y 向上,移动原点 C# System.Drawing.Graphics

转载 作者:太空狗 更新时间:2023-10-29 23:42:42 27 4
gpt4 key购买 nike

我希望原点位于窗口的中心。

______________|     ^      ||     |      ||     o----->||            ||____________|

.NET 希望它位于左上角。

_____________>|            ||            ||            ||            |V____________|

dot net 和我正在努力相处..

有谁知道如何在 C# 中使用 Graphics 对象做到这一点?

Graphics.TranslateTransform 不会这样做,因为它会使坐标上下颠倒。组合此 Graphics.ScaleTransform(1,-1) 也不令人满意,因为这会使文本上下颠倒。

最佳答案

一种解决方案是使用 TranslateTransform 属性。然后,您可以创建自己的 FlippedPoint/FlippedPointF 结构,而不是使用 Point/PointF 结构,这些结构具有对 Point/PointF 的隐式转换(但通过转换它们,坐标会翻转):

public struct FlippedPoint
{
public int X { get; set; }
public int Y { get; set; }

public FlippedPoint(int x, int y) : this()
{ X = x; Y = y; }

public static implicit operator Point(FlippedPoint point)
{ return new Point(-point.X, -point.Y); }

public static implicit operator FlippedPoint(Point point)
{ return new FlippedPoint(-point.X, -point.Y); }
}

关于c# - 使 +y 向上,移动原点 C# System.Drawing.Graphics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com