计算曲面的地平线? - 不是极值

2023-12-13

我需要找到 2 个点视觉地平线,曲面的。

I have:

  • 4个角点的XYZ
  • 2 个曲线边缘贝塞尔点的 XYZ

我需要计算:

  • 2 个水平点的 XY
  • 2 个水平点的 XYZ

Note:我得到了一个解决方案上次我问了这个问题,但只找到了extrema的曲线,而不是地平线点,它根据两条曲线相对于彼此的位置和旋转而变化。


您没有说明您的曲面是如何定义的,只是说它由两条二次贝塞尔曲线界定。有很多方法可以构建这样的表面,并且每种构建方法都有不同的地平线。所以这个答案将是猜测。

地平线由表面上的那些点组成,从相机到该点的矢量与表面相切,如下所示:

Tangent to Bézier curve

二次贝塞尔曲线具有参数方程

B(t) = (1 − t)2 P0 + 2(1 − t)t P1 + t2 P2

对 t 求导即可得到曲线的正切:

B′(t) = 2(t − 1) P0 + 2(1 − 2t) P1 + 2t P2

这与从相机(在原点)到曲线的矢量平行,如果

B(t) × B′(t) = 0

解决这个问题t你就会在地平线上找到曲线上的点。如何将其扩展到整个表面的地平线取决于表面的构造方式。 (也许您可以找到曲面两端曲线的地平线点,然后用直线将它们连接起来?)

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

计算曲面的地平线? - 不是极值 的相关文章

  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • 对一系列点重新采样

    我有一个 3d 点数组 想象一下球的轨迹 有 X 个样本 现在 我想对这些点重新采样 以便我有一个新数组 其中包含 y 个样本的位置 y 可以大于或小于 x 但不能小于 1 始终至少有 1 个样本 将原始数组重新采样为新数组的算法会是什么样
  • 读取、表示和渲染地图数据的最佳方式是什么?

    我有兴趣编写一个简单的导航应用程序作为我的宠物项目 在搜索了免费地图数据后 我决定了美国人口普查局 TIGER http www census gov geo www tiger tgrshp2007 tgrshp2007 html2007
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • 为什么这个简单的 C# 试用不起作用 [重复]

    这个问题在这里已经有答案了 这会产生条纹而不是点 为什么 我正在尝试绘制单个像素 还尝试了另一种方法 使用 fillrectangle 它也没有给出所需的结果 得到的是条形而不是点 protected override void OnPai
  • 洪水填充算法是否考虑了 alpha 且不会在抗锯齿线周围留下边缘?

    我已经实现了一个典型的洪水填充算法 当使用纯色时 它按预期工作 其中我使用 ARGB 分量之间的欧几里德距离来比较颜色 我的问题是 如果您在透明背景上绘制类似抗锯齿红线的内容 我的洪水填充算法将不会填充大多数半透明像素 从而在对象周围留下条
  • 如何在SceneKit中实现逼真的景深效果?

    我正在尝试渲染具有真实景深效果的帧 我已经尝试过景深属性camera节点 但它不会产生可用的结果 是否可以切换到景深效果的最大渲染质量 性能不是一个因素 我只需要渲染一帧 用户可以等待它 SceneKit 中逼真的景深效果 在SceneKi
  • 在 Mathematica 中使用图形进行渐变填充

    我如何使用以下内容创建Rectangle in Graphics Using Polygon 你可以 Graphics EdgeForm Black Polygon 0 0 3 0 3 1 0 1 VertexColors gt White
  • 从 NumPy 数组中的数据绘制 3D 图像

    我有一个 NumPy 数组中的数据文件 我想查看 3D 图像 我正在分享一个示例 我可以在其中查看大小为 100 100 的 2D 图像 这是 xy 平面上 z 0 处的切片 import numpy as np from matplotl
  • 可点击的精灵标签?

    我一直在玩精灵文本标签 更具体地说是这个例子 http stemkoski github io Three js Sprite Text Labels html http stemkoski github io Three js Sprit
  • 如何将 3D 图像输出到 3D 电视?

    我有一台 3D 电视 如果我不至少尝试让它显示我自己创作的漂亮 3D 图像 我就会逃避我的责任 作为一个极客 我之前已经完成了非常基本的 OpenGL 编程 因此我了解所涉及的概念 假设我可以为自己渲染一个简单的四面体或立方体并使其旋转一点
  • 在 JPanel 与 JComponent 中绘图

    我需要一些帮助来理解为什么 JComponent 与 JPanel 中的绘图工作方式不同 import java awt Color import java awt Graphics import java awt Graphics2D i
  • 用均匀的彩色表面替换颜色点

    这是我的数据和当前的绘图 require ggplot2 a rep c 2 5 10 15 20 30 40 50 75 100 each 7 b rep c 0 001 0 005 0 01 0 05 0 5 5 50 10 c c T
  • OpenGL 的每个组件 alpha 通道?

    是否可以使用 OpenGL 对每个组件使用一个 alpha 通道 一个用于红色 一个用于绿色 一个用于蓝色 进行混合 如果没有 有哪些可能的解决方法 这不是直接支持的东西 不过 您自己实现起来相当容易 使用 3 通道 alpha 纹理渲染三
  • C# 窗口形式的漂亮图形

    我需要使用 C 在 Windows 窗体中创建一些简单的图形 简单地说 我指的是线条 圆圈等 但是 当我画画时 例如实心圆 边缘不平滑 正如使用方形像素绘制圆时所预期的那样 但是当在矢量程序中使用相同数量的像素绘制相同的圆时 它看起来很完美
  • 生成落在多边形或形状内的点网格的最快方法?

    我在 python 中使用 shapely 并尝试在网格中生成均匀间隔的点 这些点在最快的 O n 时间内落在形状内 形状可以是任何闭合多边形 而不仅仅是正方形或圆形 我目前的做法是 找到最小 最大 y 和 x 来构建一个矩形 给定间距参数
  • 用于预乘 ARGB 的 SSE alpha 混合

    我正在尝试编写一个支持 SSE 的 alpha 合成器 这就是我想出的 首先 混合两个 4 像素向量的代码 alpha blend two 128 bit 16 byte SSE vectors containing 4 pre multi
  • DPI 图形屏幕分辨率像素 WinForm PrintPageEventArgs

    对于运行我的应用程序的任何显示器 Dpi 点与像素有何关系 int points Screen primary public Form1 InitializeComponent points 1 primary null void OnPa
  • 如何在ggplot2中使用希腊符号?

    我的类别需要用希腊字母命名 我在用ggplot2 并且它与数据配合得很好 不幸的是 我无法弄清楚如何将这些希腊符号放在 x 轴上 在刻度线处 并使它们出现在图例中 有什么办法可以做到吗 更新 我看了一下link https github c
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就

随机推荐

  • Swift 中的“'CGFloat' 无法转换为 'Double'”错误 (iOS)

    我正在尝试用 Swift 将图像切成 9 块 我收到此错误 CGFloat 无法转换为 Double 当我输入时出现此错误i or j在两个变量中 下面是用于剪切图像的部分代码 for i in 1 3 for j in 1 3 var i
  • Git 认为我是错误的用户

    我使用的是 Mac OSX git 版本1 8 5 2 Apple Git 48 我在 git 存储库中有一个 git 子模块 据我所知 仅使用一个 git 用户和 rsa 密钥来克隆 拉取 提交 合并和推送 我还有许多其他用户和密钥对 但
  • 使用 Microsoft.Graph 获取当前应用程序权限

    我的 C 程序使用 Microsoft Graph Nuget 并且它需要能够确保它具有正确的 Microsoft Graph 应用程序权限 我知道如何在 AD 中添加权限 但我希望我的程序能够测试它是否具有所需的权限 我想要实现的目标的示
  • 从 Web Api 发布和重定向

    Warning 这个问题不是关于如何发布到 Web Api 而是关于如何从 Web Api 发布 设想 我的问题与达林 迪米特洛夫 Darin Dimitrov 的答案的评论有关 如何在 ASP NET Web API 中重定向 并且似乎是
  • 将表而不是范围定义为数据透视表“cacheSource”

    我正在构建一个工具来自动创建包含表和关联数据透视表的 Excel 工作簿 表结构位于一张纸上 稍后将使用另一种工具从数据库中提取数据 数据透视表位于第二个工作表上 使用前一个工作表中的表作为源 我正在使用 EPPlus 来促进构建该工具 但
  • Python mysql.connector - 以字典形式检索行的正确方法

    我有一个包含 20 列的表 我使用以下代码将特定电影的每个字段作为字典获取 import mysql connector def getMovie id movie cnx mysql connector connect config cu
  • 、 、 padding、margin、100vh 和 calc()

    考虑以下代码片段 html margin 0 padding 0 background color blue body margin 0 padding 0 background color green min height 100vh s
  • 是否可以“存储”模板参数包而不扩展它?

    当我偶然发现这个问题时 我正在尝试 C 0x 可变参数模板 template lt typename Args gt struct identities typedef Args type compile error parameter p
  • java.sql.SQLException:ORA-00904

    我收到以下异常 java sql SQLException ORA 00904 invalid identifier ORA 06512 at line 1 下面是我试图执行的查询 public static final String DA
  • 返回带空格的数字字符串中的最大和最小数字

    假设我有一串用空格分隔的数字 我想返回最大和最小的数字 如何在 JS 中使用函数最好地完成此操作 例子 highestAndLowest 1 2 3 4 5 return 5 1 我希望这两个数字都以字符串形式返回 最小的数字先跟一个空格
  • 在 Apple Swift 中使用巨大的数字

    我不是程序员 我只是喜欢在空闲时间写一些代码 我以前用python3编程 现在我正在尝试学习苹果的Swift 我的问题 在 python3 中 我毫无问题地使用了像 10 1000 这样的巨大数字 我可以打印它们 用它们进行数学运算 等等
  • 如何判断可执行文件是否是为当前机器编译的?

    我有一些编译和运行的c代码 在一个可以从许多不同的unix计算机 各种linux和mac 偶尔还有其他 访问的目录中 不同的操作系统显然需要不同的可执行文件 我有一个简单的 shell 脚本 可以调用适当的可执行文件 prog OSTYPE
  • XmlSerializer 枚举反序列化因(不存在)空格而失败

    我有一个正在反序列化的对象 其中包含枚举 JourneyPatternLinkDirectionEnumeration 它用作节点 Direction 的值 当 Direction 指定了一个值 或者未指定并且它在 xml 中表示为
  • 切换到 bbcode 时无法将 youtube 视频添加到 ckeditor

    我安装了 ckeditor 并将其默认设置为 html 输出 并且我设法通过单击 flash 按钮并放置 YouTube 链接来添加 YouTube 视频 如下所示 http www youtube com v G6Na PE9Yo 现在我
  • .htaccess url 重写并删除 %20 [重复]

    这个问题在这里已经有答案了 嗨 我对重写事情很陌生 我有一个 Apache 主机正在托管我的网站 我需要重写 url 以使其看起来比当前更好 所以我有这个链接http www kalah co za content php page Civ
  • 从表和 sqlite 数据库中删除行

    我仍然需要你的帮助 我有这段代码不想工作 void tableView UITableView tableView commitEditingStyle UITableViewCellEditingStyle editingStyle fo
  • 对 TListView 列进行排序

    我有一个包含 4 列的 TListview 当然都是字符串 但是 我将数据存储在其中 Caption 任意字符串 SubItems 0 整数 例如 5016 SubItems 1 日期 例如 03 22 13 Subitems 2 任意字符
  • 将 ngMessages 与 Angular 1.2 一起使用

    有谁知道 Angular 1 2 是否有支持 ngMessages 的分支 我很想用这个 但我对 IE8 有要求 在此先感谢您的帮助 这是我使用的指令 Ui messages is similar implementation of ng
  • 使用安装项目在安装过程中获取用户输入并在安装程序中使用它

    我创建了一个安装程序来安装 Windows 服务 安装程序应要求用户为服务命名 因此 我在安装程序中创建了一个自定义 UITextBox 当用户运行 setup exe 文件时 安装开始并显示自定义 UI 用户添加了 Windows 服务的
  • 计算曲面的地平线? - 不是极值

    我需要找到 2 个点视觉地平线 曲面的 I have 4个角点的XYZ 2 个曲线边缘贝塞尔点的 XYZ 我需要计算 2 个水平点的 XY 2 个水平点的 XYZ Note 我得到了一个解决方案上次我问了这个问题 但只找到了extrema的