对列表中的 2d 点顺时针排序

2024-04-09

基本上我有一个点列表,每个点都有 X、Y、Z(Z 始终相同)。

例如:

pointList.add(Point p = new Point(1, 2, 3));

但是我无法将它们按顺时针顺序排序。

我知道中心,我知道每个列表中大约有 600 个点。

我之前已经用 Python 完成了这个任务,但在 C# 中遇到了麻烦。

Python代码:

pointlist.sort(key=lambda c:atan2(c[0], c[1]))

不确定这是否能满足您的需求。

points = points.OrderBy(x => Math.Atan2(x.X, x.Y)).ToList();

不是很优化或者什么,只是查看了你的 python 代码,并认为这会完成相同的任务。

注意:您可能需要using System.Linq除非你已经拥有了。

编辑: 斯特姆指出,为了让它们“顺时针”排列,可能需要颠倒顺序 实现此目的的一种方法是使用OrderByDescending代替OrderBy.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对列表中的 2d 点顺时针排序 的相关文章

随机推荐

  • Python:如何访问生成器对象中的元素并将它们放入 Pandas 数据框或字典中?

    我正在使用scholarlypython 中的模块用于搜索关键字 我正在返回一个生成器对象 如下所示 import pandas as pd import numpy as np import scholarly search query
  • 双击转到输出窗口中的源代码

    当您在 Visual Studio 中生成项目时 输出窗口会输出生成过程的状态 其中包括错误和警告 双击这些行将在编辑器中打开包含该错误 警告的文件 现在 是否可以通过 Debug WriteLine 或类似内容的输出来获得该功能 例如 当
  • Spring StateMachine - 从数据库配置

    在我在线查找的所有示例中 StateMachine 都是静态配置的 Override public void configure StateMachineTransitionConfigurer
  • 找不到键 TextToBoolConverter 的 StaticResource

    我需要在评论文本上使用转换器 但遇到问题 我得到 未找到键 TextToBoolConverter 的 StaticResource 转换器 namespace myMood Helpers public class TextToBoolC
  • ORA-01873: 领先精度

    我正在尝试查询视图 但得到 ORA 01873 区间的前导精度太小 错误消息 以下是查询 Select from table order by Col1 下面是视图结构 Col1 NOT NULL NUMBER Col2 NOT NULL
  • 参数传递给要在 main() 之前和之后执行的函数

    attribute
  • e^x 的无限和收敛到不正确的值

    我正在尝试实现一种不使用阶乘来计算 e x 的方法 我通过获取每两个连续项之间的比率来做到这一点 并通过将该比率与上一项相乘来计算下一项 所有这些都会添加到结果总和中 直到该项足够小而无关紧要 对于较小的 x 值 这是有效的 为了 极端 x
  • “JCenter 生命周期已结束”android lint 警告,替代品是什么?

    Android Studio Arctic Fox Canary 8 开始警告JCenter is at end of life 但我不能直接删除jcenter 声明 因为它托管了很多 android 工件 这会导致Could not re
  • zf2 中的 Lucene 搜索

    Lucene Search 库是否已从 ZendFramework 2 中删除 因为我找不到它here https github com zendframework zf2 tree master library Zend UPDATE 它
  • 限制Linux静态库中的符号

    我正在寻找限制导出到 Linux 静态库 存档 的 C 符号数量的方法 我想将这些限制为仅属于库官方 API 一部分的符号 我已经使用 static 将大多数函数声明为静态 但这将它们限制在文件范围内 我正在寻找一种方法来限制图书馆的范围
  • Python:if 语句中冒号的用途是什么?

    我下面有这段 python 代码 def m list v list 0 for e in list if v lt e v e return v values 3 4 5 1 33 6 1 2 for row in values prin
  • 如何让VS Code的自动完成更加严格?

    我喜欢 Visual Studio Code 但它的 Intellisense 自动完成功能让我抓狂 而且我用它犯的打字错误比它的帮助还要多 所以我觉得我一定是用错了 这个问题很难解释 所以我截图如下 我输入了thi 我希望 期望 想要自动
  • Linq Paging - 如何合并总记录数

    我正在尝试找出合并分页的记录计数的最佳方法 我需要这个值来计算给定页面大小和其他一些变量的总页数 这是我到目前为止所拥有的 它使用skip和take语句获取起始行和页面大小 promotionInfo from p in matches o
  • 如何将 VSCode 与 pytest 集成(“测试发现失败”)?

    我无法将项目的单元测试集成到 VSCode 中 测试发现失败 因为 pytest 无法识别源文件 只是为了澄清 这是一个关于 VSCode 的问题 与 pytest 无关 我在这里是因为 VSCode 将其问题部分链接到 SOF 如果我手动
  • 如何检查用户在文本框中输入的值是否为双精度数字?

    我试图检查用户是否在文本框中输入数字值 接受小数位 非常感谢任何帮助 Private Sub textbox1 AfterUpdate If IsNumeric textbox1 Value False Then Me textbox1 U
  • Node.js 的 python 子脚本在完成时输出,而不是实时输出

    我是node js 和socket io 的新手 我正在尝试编写一个小型服务器 它将根据python 输出更新网页 最终这将用于温度传感器 所以现在我有一个虚拟脚本 它每隔几秒打印一次温度值 恒温器 py import random tim
  • 如何使用 vimrc 在 vi​​m 中启用“非常神奇”模式?

    搜索内容时 总是输入 v很无聊 怎么写 vimrc使其成为默认的正则表达式模式 我不认为有专门的设置 比如 set magic 但是我的里面有这一行 vimrc nnoremap v 这使得每一次前向搜索都 非常神奇 编辑 FWIW 我很久
  • 如何设置 kubernetes ingress 以仅进行 VPN 访问?

    我有一个 Kubernetes 集群 其中为公共端点设置了 nginx 入口 这很好用 但我不想向公众公开一项服务 但我确实想向通过 VPN 具有 vpc 访问权限的人公开 需要访问此路由的人没有 kubectl 设置 因此他们无法使用po
  • 解锁位、锁定位和 try-finally

    我正在调用一些使用 NET 中的 BitmapData 类的代码 我遇到了一些问题 但在 Googlespace 上找不到明确的答案 因为看起来 LockBits 和 UnlockBits 必须总是成对调用 所以我使用这个 System D
  • 对列表中的 2d 点顺时针排序

    基本上我有一个点列表 每个点都有 X Y Z Z 始终相同 例如 pointList add Point p new Point 1 2 3 但是我无法将它们按顺时针顺序排序 我知道中心 我知道每个列表中大约有 600 个点 我之前已经用