线裁剪为任意二维多边形

2023-11-25

如果我得到一条足够长的线段来穿过给定的多边形,该多边形可能是凹多边形或凸多边形。我如何找到多边形中包含的所有相交的光段?

alt text

如果目标区域不是多边形,而是隐式曲线函数或样条曲线,怎么办?

Thanks!


对于您的问题确实没有简单的解决方案,尤其是曲线(贝塞尔曲线和样条曲线)。除了多边形剪裁的复杂性之外,重建剪裁曲线还面临着相当大的挑战(假设您希望剪裁结果保持为贝塞尔曲线和样条曲线,而不仅仅是“展平的”直线近似值)。

我最近发布了我的多边形裁剪库“Clipper”的测试版更新*,它可以进行线-多边形和线-线裁剪(其中线也可以是曲线)。然而,虽然主库是用 Delphi、C++ 和 C# 编写的,但新的测试版代码到目前为止仅是用 Delphi 编写的,这可能对您没有帮助。不过,如果您查看代码,您就会明白为什么我说没有“简单”的解决方案。

  • 2011 年 7 月 15 日编辑: 此“更新”从未超出此测试版本,现在只是“概念验证”。它现在基于我的 Clipper 库的旧版本,需要进行重大重写才能维护和扩展。 (在某个阶段我可能会重新访问它,但我目前打算进一步改进核心库。)尽管如此,这个“概念验证”Delphi 代码可以下载here

Clipper demo image

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

线裁剪为任意二维多边形 的相关文章

  • 简单的排名算法

    我需要创建一个民意调查 按照项目的好坏顺序创建一个排名列表 我打算向每个用户展示两个项目 让他们选择一个他们认为更好的项目 然后多次重复这个过程 它有点类似于您在社交网络电影 我应该如何根据收到的答案对项目进行排名 看着那 这ELO国际象棋
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • 数独算法,暴力破解[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 加载内容时在 ImageView 中使用“动画圆圈”

    我目前在我的应用程序中使用一个列表视图 可能需要一秒钟才能显示 我目前所做的是使用列表视图的 id android empty 属性来创建 正在加载 文本
  • 分而治之算法找到两个有序元素之间的最大差异

    给定一个整数数组 arr 找出任意两个元素之间的差异 使得较大的元素出现在 arr 中较小的数字之后 Max Difference Max arr x arr y x gt y 例子 如果数组是 2 3 10 6 4 8 1 7 那么返回值
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • LRU算法,实现这个算法需要多少位?

    我有一个关于 LRU 算法的小问题 如果您有一个包含四个块的高速缓存 那么需要多少位来实现该算法 假设您指的是 4 路组关联缓存 完美 LRU 本质上是按照使用顺序为每一行分配一个精确的索引 您也可以将其视为 年龄 因此 4 个元素中的每一
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 贝尔曼福特算法可以有任意的边顺序吗?

    我刚刚开始学习新算法 但当我阅读 极客为极客而写的贝尔曼福特算法 时 我陷入了困境 http www geeksforgeeks org dynamic programming set 23 bellman ford algorithm h
  • 优化计算中使用的 # 个线程的算法

    我正在执行一个操作 我们将其称为CalculateSomeData CalculateSomeData 在连续的 代 中运行 编号为 1 x 整个运行中的代数由CalculateSomeData 的输入参数固定 并且是先验已知的 完成一次生
  • 颜色逻辑算法

    我们正在构建一个体育应用程序 并希望将团队颜色融入到应用程序的各个部分 现在 每个团队都可以使用几种不同的颜色来表示 我想做的是执行检查以验证两个团队颜色是否在彼此一定的范围内 这样我就不会显示两个相似的颜色 因此 如果团队 1 的主要团队
  • 使用什么算法来确定使系统达到“零”状态所需的最小操作数?

    这是一种更通用的问题 不是特定于语言的 有关要使用的想法和算法的更多信息 系统如下 它登记朋友群体之间的小额贷款 Alice and Bill要去吃午饭 比尔的卡坏了 所以爱丽丝支付了他的餐费 10 美元 第二天Bill and Charl
  • 无法理解Peterson算法的正确性

    我在这里讨论彼得森算法的一个场景 flag 0 0 flag 1 0 turn P0 flag 0 1 turn 1 while flag 1 1 turn 1 busy wait
  • 面试题:三个数组,O(N*N)

    假设我们有three长度数组N其中包含任意数量的类型long 然后我们得到一个数字M 相同类型 我们的任务是选择三个数字A B and C每个数组中的一个 换句话说A should从第一个数组中选取 B从第二个开始和C从第三个 所以总和A
  • sigmoid 的导数

    我正在使用反向传播技术创建一个神经网络进行学习 我知道我们需要找到所使用的激活函数的导数 我正在使用标准 sigmoid 函数 f x 1 1 e x 我已经看到它的导数是 dy dx f x f x 1 f x 这可能是一个愚蠢的问题 但
  • 计算序列而无法存储值?

    问题陈述 here http www spoj com problems EC SER 令 S 为无限整数序列 S0 a S1 b Si Si 2 Si 1 对于所有 i gt 2 你有两个整数 a 和 b 您必须回答有关序列中第 n 个元
  • 在 Python 中从 Excel 复制 YEARFRAC() 函数

    因此 我使用 python 来自动执行一些必须在 Excel 中执行的重复任务 我需要做的计算之一需要使用yearfrac 这在Python中被复制了吗 I found this https lists oasis open org arc
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都

随机推荐

  • Git 日志不显示任何内容

    我有许多 git 存储库 带有提交 每个存储库在运行时都不显示任何内容git log 如果我在项目目录之外运行命令 没有 git 存储库 我会得到 致命 不是 git 存储库 或任何父目录 git 我尝试重新安装 Git 我现在运行的是 1
  • Python模块名称冲突

    我遇到过两个必须使用相同模块名称导入的 Python 模块 例如 import foo 我知道我想要的那个提供了某些功能 例如foo bar 那么有没有一种方法可以循环使用同名的模块 直到找到提供这些功能的模块 或者除了在安装之前重命名模块
  • 大数字的 CSS 字距调整

    我意识到在美国 大量的数字都是用 数以千计之间 所以你会写 1 000 000 00 在南非 是非标准的 可以用作小数点而不是 我们会写 1000000 00读起来很糟糕 典型的解决方案是使用一些空格 1 000 000 00 该解决方案的
  • 在变量周围使用大括号 (Brace) C++

    我正在编程课上学习二维数组 我的老师在没有解释的情况下使用了一些东西 我很好奇我们为什么使用它 由于它与符号有关 我不确定如何谷歌或搜索它 因为这些符号在搜索本身中使用 无论如何 代码是这样的 int small 26 0 large 26
  • 使用 Android api 创建新的同步日历

    我正在尝试在我的帐户上创建一个日历 以填充我从某些网站获得的事件 我搜索并找到了一些新的 android 4 0 日历示例 我对其进行了修改以获得我需要的内容 问题是日历已创建 其中充满了事件 但未与谷歌日历同步 因此在下次同步时它会被删除
  • ForkJoinPool 调度与 ExecutorService

    我对内部调度机制有点困惑ExecutorService和ForkJoinPool 我明白了ExecutorService调度已完成this way 一堆任务排队 一旦线程可用 它将处理第一个可用任务 依此类推 与此同时 一个ForkJoin
  • NHibernate Win Forms 会话管理

    我之前在 Web 应用程序中使用过 NHibernate 我必须承认 我仍在学习 NHibernate 并没有完全掌握会话管理的艺术 所以我想在我正在编写的 Win Forms 应用程序中使用 NHibernate 我听说表单应用程序中的会
  • Bash 在 rsync/subshel​​l exec 语句期间不捕获中断

    Context 我有一个 bash 脚本 其中包含一个子 shell 和一个用于 EXIT 伪信号的陷阱 并且它在执行期间没有正确捕获中断rsync 这是一个例子 bin bash logfile path to file director
  • 有没有针对 SQL Server 的查询优化工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有任何工具可以对 SQL Server 2005 及更高版本进行查询优化 我已经搜索过并没有找到任何东西 你有什么建议吗 如果在您关闭之前重复了
  • 页面如何告诉浏览器存在 AMP HTML 版本?

    我知道我将有两页 AMP 一页和常规一页 AMP 版本具有到常规版本的规范链接 但常规版本如何指定有可用的 AMP 版本 The AMP 文档发现文档指定您需要在 举例来说 如果您查看已支持 AMP 的发布商的页面 例如http www b
  • 互相关会产生滞后吗?

    假设有两个信号 import numpy dt 0 001 t steps np arange 0 1 dt a sig np sin 2 np pi t steps 4 5 b sig np sin 2 np pi t steps 4 我
  • 如何在 Neo4j/Cypher 中返回复合对象

    我想使用 cypher 从 Neo4j 返回一个复合对象来整理我的查询 举个例子 我有一个用户帐户对象 其权限存储为关系 权限是复杂的对象 因此无法嵌套 它们现在通过关系 HAS PERMISSION 链接 我想要做的是返回已嵌套权限的完整
  • 将整数插入 Start 中的阿拉伯字符串

    我试图将整数添加到阿拉伯字符串但没有成功 Arabic String Astr String with Integer 1 num 1 Adding Strings r Astr num r num Astr 输出 1 期望的输出 1 我想
  • 模拟器中的 iOS 6 自动旋转与实际 iOS 6 设备不同

    我的应用程序不会在 iOS 6 GM 模拟器中自动旋转 但它会在设备上的相同版本的 iOS 中自动旋转 这可能是模拟器的错误吗 该应用程序正在使用已弃用的自动旋转方法 但它们在设备本身上运行良好 这让我想知道模拟器 API 是否不同 它应该
  • Qt SDK、Apwrapper:它是什么,它有什么作用。

    我已阻止 Visual Studio 的网络连接 使用 Visual Studio 添加安装 Qt SDK 后 我收到一条错误消息 无法连接到 AppWrapper 卸载了 SDK 并且不再尝试连接到 AppWrapper 随 Qt 安装的
  • 关于未引用变量的 JavaScript 闭包

    我知道有关闭包的精彩帖子here and here 但似乎都没有解决我想到的具体情况 这个问题最好用代码来证明 function foo var x var y whatever return function bar alert y va
  • Python 解释器如何在动态类型中工作?

    我读过这个问题 但它没有给我明确的答案 Python解释器如何寻找类型 python解释器如何知道变量的类型 我不是在寻找如何获得类型 我在这里看看幕后发生的事情 在下面的示例中 它如何将类 int 或 string 与我的变量关联起来 它
  • jQuery 图像加载回调

    加载后动态地将图像添加到页面 然后进行用户交互 并且在该图像完全加载后启动功能时遇到问题 我认为使用 jQuery load 方法会很好 但是根据我的控制台和一堆文档 log它从未执行过的业务 见下文 谢谢 body append img
  • 为什么“即使有不同的条件界限,也不能有多个一致性”?

    我希望 Swift 能够让我为具有指定条件的类型创建扩展where堵塞 我想象我可以根据具体的泛型类型值使用不同的扩展来扩展相同的泛型类型 T 但不是 以下示例演示了我的问题 protocol P associatedtype Prop v
  • 线裁剪为任意二维多边形

    如果我得到一条足够长的线段来穿过给定的多边形 该多边形可能是凹多边形或凸多边形 我如何找到多边形中包含的所有相交的光段 如果目标区域不是多边形 而是隐式曲线函数或样条曲线 怎么办 Thanks 对于您的问题确实没有简单的解决方案 尤其是曲线