如何求多边形的垂直距离?

2023-12-07

我现在有 n 个坐标,从中创建了一个多边形,如果该多边形中有一个坐标,那么如何找到点和多边形的垂直距离?

coords = [(45.888106581826065, 8.512891340789281), (45.89087605100282, 8.51131888355673), (45.89242907135495, 8.51043574866833), (45.88810733356788, 8.512894063368899), (45.890876868519385, 8.51132182341189), (45.892063379278696, 8.510647148893547), (45.89243094789967, 8.510442653438174), (45.88811958097381, 8.512938419782168), (45.89088904461223, 8.51136560966078), (45.89207575921023, 8.510692030810025), (45.89244290698806, 8.51048665710127), (45.88813186579548, 8.512982911786311), (45.89090145183551, 8.511410227156235), (45.89245416375836, 8.510528076647585), (45.88813271861146, 8.512986000437545), (45.89090242476677, 8.511413725908412), (45.89245495631277, 8.510530992872562)]

需要检查的点是否在多边形中:

p2 = Point(45.88831, 8.51283)

检查坐标是否(p2) 是否在多边形内:

poly = MultiPoint(coords).convex_hull
    if p2.within(poly):
        print("Givien point is in polygon")

我尝试使用boundary.distance函数来查找距离,我得到的结果为4.7144012366024但不确定是垂直距离还是其他什么!

print(poly.boundary.distance(p2))
#output: 4.71440123660249

谁能帮我求出该点的垂直距离?


对于每个多边形边AB进行点投影C onto AB使用向量的点积并得到它的长度:

t = (AB.dot.AC) / (AB.dot.AB)  ## ratio of  AP / AB
L = length(t*AB - AC)  ## CP distance at the picture

请注意,对于t外部参数0..1射程投影取决于AB

enter image description here

Example:

import math
def proj(x1,y1,x2,y2,cx,cy):
    dx = x2 - x1
    dy = y2 - y1
    cdx = cx - x1
    cdy = cy - y1
    t = (cdx * dx + cdy * dy) / (dx * dx + dy * dy)
    if t < 0 or t > 1:
        print("Projection lies outside segment")
    px = x1 + t * dx
    py = y1 + t * dy
    print("Projection coordinates: %5.1f %5.1f" % (px, py))
    nlen = math.hypot(t * dx - cdx, t * dy - cdy)
    print("Distance from point to line: %5.1f" % nlen)
    alonglen = math.hypot(t * dx, t * dy)
    print("Along segment distance:  %5.1f" % alonglen)

proj(0, 0, 4, 16/3, 0, 5)

>>
Projection coordinates:   2.4   3.2
Distance from point to line:   3.0
Along segment distance:    4.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何求多边形的垂直距离? 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 让 VoiceChannel.members 和 Guild.members 返回完整列表的问题

    每当我尝试使用 VoiceChannel members 或 Guild members 时 它都不会提供适用成员的完整列表 我从文本命令的上下文中获取 VoiceChannel 和 Guild 如下所示 bot command name
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv

随机推荐

  • Kohana ORM 和验证,有问题

    尝试使用适用于 Kohana 3 2 的 ORM 进行验证 目前我有我的模型
  • New-Object:找不到“PSCredential”的重载且参数计数:“2”

    我希望将一封电子邮件发送给多个收件人 而且我不想提示输入用户名和密码 所以我使用了下面的字符串转换 但随后我遇到了下面的错误消息 您能否提出解决此问题的答案 string ValidateNotNullOrEmpty secpasswd Q
  • 如何从 NSImage 保存 PNG 文件(视网膜问题)

    我正在对图像进行一些操作 完成后 我想将图像以 PNG 格式保存在磁盘上 我正在执行以下操作 void saveImage NSImage image atPath NSString path image lockFocus NSBitma
  • 从(任意)连续概率分布进行模拟[重复]

    这个问题在这里已经有答案了 例如 对于实数线上定义的归一化概率密度函数 p x 2 pi 1 exp x exp x 这只是一个例子 该解决方案应该适用于我们可以定义的任何连续 PDF R 中是否有一个包可以从发行版进行模拟 我知道 R 的
  • VBA 中表单宽度和高度的单位是什么?

    我正在为 Word 2007 编写 VBA 程序 我创建了一个用户窗体 需要使用脚本调整其大小 我注意到它不是像素 Me Width pixelW form appears about 20 larger than the pixel wi
  • gensim TransformedCorpus数据高效转换为数组

    是否有比下面的逐行方法更直接或更有效的方法将主题概率数据从 gensim interfaces TransformedCorpus 对象获取到 numpy 数组 或者 pandas 数据帧 from gensim import models
  • VBA:写入日志文件的子程序

    我在工作簿中定义了一组宏 我想向用户提供在日志文件中记录与这些宏相关的事件的选项 我通过在 ThisWorkbook 中创建以下内容来启动日志 Public writeLog as Boolean Public logWrite as Ob
  • 使用 Jackson 序列化枚举

    我有一个如下所述的枚举 public enum OrderType UNKNOWN 0 Undefined TYPEA 1 Type A TYPEB 2 Type B TYPEC 3 Type C private Integer id pr
  • 为什么我的文本字段似乎不为零,即使我将该字段留空?我的 if 语句的“else”部分没有被读取

    我正在通过制作一个保存客户数据的应用程序来练习快速编程 该应用程序有几个文本字段 人们应该在其中输入姓名 电子邮件地址 电话号码和购买的产品数量 然后通过 提交 按钮 他们将该信息保存到数据库中 但是 如果其中一个字段为空 则应抛出错误 并
  • Tortoise Git - 拉取导致冲突后丢失提交

    这个问题完美地描述了我们的情况 当 Git 或 TortoiseGit 出现冲突时 正确的提交 推送方式是什么 对于上述问题没有答案 至少没有一个被接受的答案 这似乎是解决方案之一 https stackoverflow com a 121
  • 并发异步/等待与睡眠

    我想知道答案是否为这个相当老的问题about future 仍然适用于更新的语言结构async await 似乎是这样 因为下面的代码打印 hello good bye hello 虽然导游 says futures join 宏使得可以等
  • 如何在winRT中用动画绘制圆弧?

    我是 WinRT 和 Blend 的新手 我需要在 WinRT 应用程序中使用绘图效果绘制数字 1 2 等 要求就像应用程序将绘制数字 任何帮助将非常感激 提前致谢 我认为您需要拼凑几个故事板才能实现这一目标 我真的建议您使用 Blend
  • 模拟器使用 int21h/ah=09h 显示“2000 个字节后未找到错误字节 24h”

    我必须使用汇编来做一个简单的计算器EMU8086 但每次我尝试启动它时EMU8086给出这个错误 INT 21h AH 09h address 170B5 byte 24h not found after 2000 bytes correc
  • 带有选项标签的 CSS - 编辑文本颜色

    用CSS编辑选项标签背后有什么秘密吗 我就是无法解决这个问题
  • URL 中允许的字符

    有谁知道可以在 GET 中使用而无需编码的字符的完整列表 目前我正在使用 A Z a z 和 0 9 但我希望找到完整的列表 我还想知道是否有针对即将添加的中文 阿拉伯语网址的规范发布 显然这将对我的问题产生重大影响 编辑 正如 Jukka
  • 通过 REST 接口托管的 PDF 在 Chrome 88+ 中返回 ERR_BLOCKED_BY_CLIENT

    I am working on a project that uses a Java Backend Application that hosts a PDF over a REST interface Up to Chrome 87 an
  • 通过CSS隐藏特定尺寸的图像?

    在此先感谢您的帮助 我有一个 RSS 我想在我的页面上发布该 RSS 的内容 但该 RSS 来自 WordPress 并且包含用于评论的按钮的图像 问题1 如果我隐藏所有 img 从 RSS 中 我还隐藏了博客中文章中发布的图像 问题2 评
  • 为什么 `Stage#show` 这么慢,可以采取什么措施来加速它

    在 JavaFX 中 第一次显示舞台时Stage show花费很长时间 我不是在谈论加载 FXML 所需的时间 这完全是一个不同的问题 而只是在调用之间所需的时间Stage show和调用返回 以及向用户显示的窗口 我创建了这个示例应用程序
  • SQLite 查询连接日期范围?

    我正在使用 SQLite 假设我有一张桌子sales有两列 date and count 记录我在那一天卖出了多少杯柠檬水 如果我在某一天没有卖出任何柠檬水 我会很沮丧而无法在sales table 我想了解给定日期范围内销售的平均眼镜数量
  • 如何求多边形的垂直距离?

    我现在有 n 个坐标 从中创建了一个多边形 如果该多边形中有一个坐标 那么如何找到点和多边形的垂直距离 coords 45 888106581826065 8 512891340789281 45 89087605100282 8 5113