Make +y UP,移动原点 C# System.Drawing.Graphics

2023-11-22

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




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

.NET 希望它位于左上角。




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

点网和我正在努力相处。

有谁知道如何在 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); }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Make +y UP,移动原点 C# System.Drawing.Graphics 的相关文章

随机推荐

  • 通过 System.Data.SQLite 和 c# 多次访问单个 SQLite 数据库文件

    正如我可以读到的SQLite 常见问题解答它支持在任意时刻多进程读取 SELECT 和仅一个进程写入 INSERT UPDATE DELETE 数据库 SQLite 使用读 写锁来控制对数据库的访问 当任何进程想要写入时 必须锁定整个数据库
  • 生成总和为 1 的值的组合,并按降序排序

    您是否知道一种更有效的方法来生成包含 权重 的所有唯一组合的矩阵 令权重为 w 且 0 这是完成这项工作的代码 但删除行似乎效率低下 generate combinations of weights such that w1 gt w2 g
  • 如何在C#中复制列表

    我想复制对象列表 但我不断获取对象之间的引用 List
  • Ajax中间件

    我似乎记得在 Laravel 4 中有一个 ajax 过滤器 这只允许通过 ajax 请求 Laravel 5 有类似的中间件吗 我有一条通过 ajax 从数据库获取数据的路由 我想保护这条路由 这样没有用户可以访问它并查看 json 数据
  • 如何在未选中复选框时显示 Javascript 确认框,然后如果用户选择取消,则保留复选框处于选中状态?

    我有一个小html form包含三个复选框 每个复选框row 我想要一个javascript confirm box当用户取消选中该框时显示 然后如果用户选择取消 则checkbox仍处于检查状态 我搜索过这个网站和其他一些网站 但几乎所有
  • Javascript indexOf 用于数组的数组未找到数组

    我有一个带有嵌套数组的数组 如下所示 var tw 3 0 11 0 3 14 11 14 当我尝试查找数组是否tw包含传入的数组 我总是得到 1的结果 例如 var test inArray 3 0 tw var test2 tw ind
  • 如何调试引用的 dll(具有 pdb)

    我的工作区中有两个解决方案 即 A 和 B 解决方案A是一个较旧的项目 我不久前完成了编码 在解决方案 B 中 我需要使用解决方案 A 中的一些类 为此 我添加了对解决方案 A 中项目之一的 dll 的引用 问题是当我尝试调试时 我也希望能
  • 在“Location:”标头中使用协议相关 URI

    我注意到在PHP手册其中规定如下 HTTP 1 1 需要绝对 URI 作为 Location 的参数 包括 方案 主机名和绝对路径 但有些客户端接受 相对 URI 为了方便有偏好的用户HTTPS 无处不在连接 我正在考虑更改 PHP 脚本中
  • 用户通知 - 如何从 GCM 恢复丢失的 notification_id?

    我生成notification key如上所述here 假设由于某些错误我无法存储它 所以我尝试重新注册 这次我收到了 400 错误消息 notification key already exists 这看起来很奇怪 尤其是与将设备注册到
  • 如何使用 BeautifulSoup 查找节点的子节点

    我想得到所有 a 标签是 的子标签 li div div li li class test a link1 a ul li a link2 a li ul li 我知道如何查找具有特定类的元素 如下所示 soup find li class
  • Java Spring REST API 处理许多可选参数

    我目前正在搞一个 Spring Boot REST API 项目以用于教学目的 我有一个相当大的表 其中有 22 列加载到 MySQL 数据库中 并试图让用户能够按多列过滤结果 在本示例中假设为 6 列 我目前正在扩展一个存储库 并已初始化
  • singletonList有什么用?

    我正在寻找一些优雅的解决方案来从列表中删除空值 我遇到了以下帖子 这表示我可以使用list removeAll Collections singletonList null 然而 这引发了UnsupportedOperationExcept
  • File.Copy() 是否通过网络将文件从网络共享复制到同一台计算机上的另一个共享?

    如果我的 NET 客户端使用系统 IO 文件 复制从中复制文件 server1 share1 file1 txt to sever1 share2 file2 txt 文件的数据是否被读取到客户端 然后写回服务器 如果是 是否有任何方法 N
  • nginx过滤http洪水的配置

    A 我的服务器上有 http 洪水 没有太多查询 但无论如何 日志中的查询 95 55 237 3 06 Sep 2012 14 38 23 0400 GET HTTP 1 0 200 35551 Mozilla 5 0 Windows U
  • GlassFish、CDI 和构造函数注入

    GlassFish 3 1 的托管 bean 的 CDI 实现是否支持构造函数注入 我有一个 Singleton我想使用构造函数注入向其中注入另一个托管 bean 包含在同一 EJB 模块中 的 EJB 现场注入确实有效 但是通过构造函数注
  • 在 Docker 容器内挂载 SMB/CIFS 共享

    我有一个在 Docker 容器中运行的 Web 应用程序 此应用程序需要访问我们公司文件服务器 具有 Active Directory 域控制器的 Windows Server 上的一些文件 我尝试访问的文件是为我们的客户创建的图像文件 网
  • Connect:非socket上的socket操作

    我是unix网络编程的新手 我尝试编写一个程序来连接到Google的服务器 但是 我在使用 connect 函数时遇到错误 操作系统 OS X 连接错误 在非套接字上进行套接字操作 我已经研究了4个小时 但我无法找出问题所在 这是我的代码
  • 3D刚体平移和旋转的python实现

    我一直在尝试找出如何使用 python 解决以下问题 我们有点 a b c d 形成刚体 一些不为人知的3D平移和旋转应用于刚体 我们现在知道 a b c 的坐标 我们想要计算 d 的坐标 到目前为止我所知道的 由于万向节锁等原因 尝试通过
  • 如何重写 Spring Data CrudRepository 上的删除方法?

    我有一些无法删除的对象 并且必须更新名为 已删除 的公共字段来代替它 我读there我可以使用编写通用查询 entityName 因此我试图覆盖CrudRepository delete 像这样的方法 public interface De
  • Make +y UP,移动原点 C# System.Drawing.Graphics

    我希望原点位于窗口的中心 o gt NET 希望它位于左上角 gt V 点网和我正在努力相处 有谁知道如何在 C 中仅使用 Graphics 对象来做到这一点 Graphics TranslateTransform 不会执行此操作 因为它会