如何找到矩形周长中距离给定点最近的点?

2024-02-23

这是一个与语言无关的问题。给定一个矩形的尺寸l,t,w,h(左、上、宽、高)和一个点x,y,如何找到矩形周长上距离该点最近的点?

我尝试用 Lua 解决这个问题,但任何其他语言都可以。到目前为止,这是我最大的努力:

local function nearest(x, a, b)
  if a <= x and x <= b then
    return x
  elseif math.abs(a - x) < math.abs(b - x) then
    return a
  else
    return b
  end
end

local function getNearestPointInPerimeter(l,t,w,h, x,y)
  return nearest(x, l, l+w), nearest(y, t, t+h)
end

这适用于一点outside周边或周边本身。但为了积分inside它失败的周界(它只是返回x,y)

我的直觉告诉我解决方案应该很简单,但我似乎没有找到。


这次我试图捕捉点到矩形任意边的最小距离。

local abs, min, max = math.abs, math.min, math.max

local function clamp(x, lower, upper)
  return max(lower, min(upper, x))
end

local function getNearestPointInPerimeter(l,t,w,h, x,y)
  local r, b = l+w, t+h

  x, y = clamp(x, l, r), clamp(y, t, b)

  local dl, dr, dt, db = abs(x-l), abs(x-r), abs(y-t), abs(y-b)
  local m = min(dl, dr, dt, db)

  if m == dt then return x, t end
  if m == db then return x, b end
  if m == dl then return l, y end
  return r, y
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到矩形周长中距离给定点最近的点? 的相关文章

  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 与两点相交的圆心

    给定 2D 平面上的两个点 以及与这两个点相交的半径为 r 的圆 计算该圆中心的公式是什么 我意识到圆圈可以放置在两个地方 当从任意角度开始扫描围绕其中一个点连接两个点的线时 我希望首先沿顺时针方向遇到其中心的圆 我想这是我的问题的下一阶段
  • 黑色左/右三角形大小不同

    我使用黑色左指三角形 右左指三角形几何形状作为网站上的链接 并使用它们的 HTML 代码 和 9664 9654 由于某种原因 即使我在没有其他元素的空白页面上使用三角形 它们也不会以相同的大小显示 在 Chrome 上 向左指向的位置比向
  • 寻找将集合映射到整数的双射函数

    对于任意两个序列 a b 其中 a a1 a2 an 且 b b1 b2 bn 0a b具有相同的元素 而不关心它们的顺序 例如 如果 a 1 1 2 3 b 2 1 3 1 c 3 2 1 3 则 f a f b f a f b 我知道有
  • 单位安全平方根

    我只是想知道如何以与 F 正确交互的方式编写用户定义的平方根函数 sqrt 单位制 http blogs msdn com andrewkennedy archive 2008 09 04 units of measure in f par
  • 这个按位运算如何检查 2 的幂?

    我正在看一些应该很简单的代码 但我的数学在这里严重失败 下面是一个使用以下条件检查数字是否为 2 的幂的条件 if num 1 num num 1 make num pow of 2 我的问题是 如何在 num 和 num 1 之间使用按位
  • GCC的sqrt()编译后如何工作?使用哪种root方法?牛顿-拉夫森?

    只是对标准感到好奇sqrt 来自 GCC 上的 math h 我自己编码的sqrt 使用牛顿拉夫森来做到这一点 是的 我知道 fsqrt 但CPU是如何做到这一点的呢 我无法调试硬件 现代 CPU 中的典型 div sqrt 硬件使用 2
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • CGPoint 标量乘法 Swift

    我正在 SpriteKit 中构建一个平台游戏 并将为我的实体实现更新功能 以便它们根据重力和速度移动 但是 我需要使添加的速度量与增量时间成比例 以防止帧速率影响我的实体的移动方式 因此我将导入 GLKit 以便我可以使用标量函数 但是
  • 矩阵乘法 - 视图/投影、世界/投影等

    在 HLSL 中有很多矩阵乘法 虽然我了解如何以及在何处使用它们 但我不确定它们是如何导出的或它们的实际目标是什么 所以我想知道是否有在线资源可以解释这一点 我特别好奇将世界矩阵乘以视图矩阵以及世界 视图矩阵乘以投影矩阵背后的目的是什么 您
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • C++ Exp 与 Log:哪个更快?

    我有一个 C 应用程序 需要比较两个值并决定哪个值更大 唯一的复杂之处是一个数字在对数空间中表示 而另一个则不是 例如 double log num 1 log 1 23 double num 2 1 24 如果我想比较num 1 and
  • 列出所有 k 元组,其条目总和为 n,忽略旋转

    有没有一种有效的算法来查找所有序列k总和为的非负整数n 同时避免旋转 如果可能的话 完全避免 顺序很重要 但对于我正在解决的问题来说 轮换是多余的 例如 与k 3 和n 3 我想要得到一个如下所示的列表 3 0 0 2 1 0 2 0 1
  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • 是什么导致 Java(冰雹序列)在我的程序中崩溃

    我制作了一个执行 通常称为 冰雹序列的程序 该程序基本上执行以下操作 创建一个int 值 并为其分配一个值 如果 int 是偶数 则将其除以二 如果 int 为奇数 则将其乘以三并加一 继续这个过程 直到 n 等于 1 它似乎适用于大多数数
  • 如何从矩形点计算旋转角度?

    我有4分1 2 3 4闭合一个矩形 这些点按以下方式排列在数组中 x1 y1 x2 y2 x3 y3 x4 y4 我遇到的问题是矩形可以旋转一定角度 如何计算原始点 灰色轮廓 和角度 我试图在 javascript css3 transfo
  • 最接近 x,y 的线上的点[重复]

    这个问题在这里已经有答案了 可能的重复 如何判断一个点是否在某条线附近 https stackoverflow com questions 910882 how can i tell if a point is nearby a certa
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the

随机推荐

  • java中可以将字符串转换为数学运算吗?

    我可以将像 3 3 3 这样的字符串转换为java中的数学运算吗 使用 JavaScript 来评估它脚本引擎 http docs oracle com javase 6 docs api javax script ScriptEngine
  • AWS Lex Python Codehook 参考

    我对 Python 和编码 还很陌生 但我正在尝试使用 Lambda 函数构建自己的 Lex 机器人 我一直在关注教程 我可以理解它是如何工作的 问题是 当我尝试为 Lex 编写自己的 Lambda 函数时 我找不到任何参考来帮助我编写代码
  • 将带逗号的字符串转换为数组

    如何将字符串转换为 JavaScript 数组 看代码 var string 0 1 var array string alert array 0 在这种情况下alert shows 0 1 如果它是一个数组 它会显示0 而如果alert
  • 使用 .net SDK 从 Amazon S3 存储桶下载文件夹

    如何使用 net sdk 下载 s3 存储桶中存在的整个文件夹 尝试使用以下代码 它会抛出无效密钥 我需要下载存储桶中存在的嵌套 pesudo 文件夹中存在的所有文件 并将文件下载限制删除为默认值 1000 public static vo
  • 如何在Retrofit-2.0+ android中设置超时

    我提到这个链接 https stackoverflow com a 29380845 1083093但我似乎无法实现我的 我在用 compile com squareup retrofit2 retrofit 2 0 2 compile c
  • 将 Drupal 用户帐户导入 Rails,无需用户更改密码

    我想将一系列 Drupal 用户帐户导入到new铁轨项目 我正在使用 Devise 在 Rails 中进行用户身份验证 我希望能够将加密密码从 Drupal 导入到 Rails 中 以便用户在网站迁移时获得无缝体验 关于如何做到这一点有什么
  • 为什么 git revert 在这些情况下表现不同?

    假设我有ProjectA and ProjectB其中我只有一个名为test txt在这两个项目中并使用 git 跟踪它 第一次提交后 两个项目中的文件内容如下所示 one two three four 第二次提交后 两个项目中的文件内容如
  • dompdf:A4页面上的白边距

    我正在使用 dompdf 一个 PHP 库 创建 PDF 页面 但在设置正确的尺寸时遇到问题 当我使用 CSS 属性时 page size 21cm 29 7cm 例如 我想要页面的上半部分为红色 PDF 文件没问题 但打印后我得到了白色边
  • 如果我更改操作系统时区,事件(作为 json feed)、开始结束参数 unix 时间戳会有所不同

    我正在使用 fullcalendar 插件 如果有人可以帮助我 我将不胜感激 我通过 PHP URL 获取 json 事件 像这样的东西 calendar fullCalendar events myfeed php 因此 在返回事件的 p
  • Springboard 无法启动应用程序,错误为 3、0、4 等

    为什么 Xcode 无法在模拟器中启动应用程序 我在网上浏览了很多解决方案 但有时有效 有时无效 很多时候我解决问题的方法就是退出模拟器 删除应用程序 重置模拟器的内容设置 并清理和构建 但为什么我每次都要尝试其中的任何一个 所有 呢 Xc
  • 从命令行启动 Beyond Compare

    我已安装 Beyond Compare 3 C Program Files Beyond Compare 3 BCompare exe 和西格温 C Cygwin bin bash exe 我想要的是能够使用诸如以下的命令 diff
  • 核心图形和 GIF 颜色表

    我试图限制动画 GIF 的颜色数量 由一系列CGImageRef 但是 我在实际设置自定义颜色表时遇到困难 有谁知道如何使用核心显卡来做到这一点 我知道kCGImagePropertyGIFImageColorMap 下面是一些测试代码 大
  • 如何使用 $util.error 在 AppSync 中发送自定义错误

    我对 AppSync 错误处理有疑问 我想发送errorInfo对象以及错误响应 我尝试过 util error 根据文件 https docs aws amazon com appsync latest devguide resolver
  • 如何更改 Rails 中的 URL

    我有一个名为 Book 的资源 然后我有如下域 domain com books 272 但我想把它改成 domain com stories 272 仅针对 URL 不需要更改控制器 类等 在我有的路线中 map connect cont
  • 如何在JSP页面中包含angular2/4组件?

    我想在JSP页面中添加角度组件 有哪些可能的方法 描述更多 我在 JSP 中有一个应用程序动态 Web 应用程序 我创建的另一个应用程序是一个执行一些身份验证的角度组件 除了 object embedd 或 iframe 之外 还有其他方法
  • 使用共享库时的 Yarn 工作区最佳实践

    我有一个常见 或不太常见 的场景yarn workspaces并且在网上没有找到适合我的指南 纱线工作区看起来像这样 monorepo packages client admin theme lib Client用作我们的最终用户 它是一个
  • Databricks - Pyspark 与 Pandas

    我有一个 python 脚本 其中使用 pandas 来转换 操作我的数据 我知道我有一些 低效 的代码块 我的问题是 如果 pyspark 应该更快 我可以使用 pyspark 而不是 pandas 替换这些块 还是我需要将所有内容都放在
  • 如何在 C# 中读取 ID3 标签并将其写入 MP3? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个库可以在 C 中读取 ID3 标签并将其写入 MP3 我在搜索时实际上看到了几个 有人使用可
  • 在 Android junit 测试用例中获取测试项目的上下文

    有谁知道如何获得上下文测试项目在 Android junit 测试用例中 扩展 AndroidTestCase 注意 该测试不是仪器测试 注 2 我需要测试项目的上下文 而不是测试的实际应用程序的上下文 我需要它从测试项目的资产中加载一些文
  • 如何找到矩形周长中距离给定点最近的点?

    这是一个与语言无关的问题 给定一个矩形的尺寸l t w h 左 上 宽 高 和一个点x y 如何找到矩形周长上距离该点最近的点 我尝试用 Lua 解决这个问题 但任何其他语言都可以 到目前为止 这是我最大的努力 local function