将点投影到平面上的投影矩阵

2024-01-10

如何确定 4x4S矩阵,以便 P 在 XZ (Y=0) 平面上投影到 Q 中?

Q = S P


射线有坐标r(t) = L + t * (P-L)。这是组件形式:

r_x = L_x + t*(P_x-L_x)
r_y = L_y + t*(P_y-L_y)
r_z = L_z + t*(P_z-L_z)

现在你需要找到Q = r(t) 使得r_y = 0。这是在什么时候完成的t = -L_y/(P_y-L_y) or

Q_x = L_x - L_y/(P_y-L_y)*(P_x-L_x)
Q_y = 0
Q_z = L_z - L_y/(P_y-L_y)*(P_z-L_z)

一般来说,投影平面由单位法向量定义n=(n_x,n_y,n_z)以及平面到原点的距离d。一个点r(t) 位于平面上,如果r(tn=d其中·是向量点积。

点的解决方案Q一般来说是

t = (d - n·L)/(n·(P-L))

Q = L + t *( P-L )

C上面的样式代码是:

// L : Light Source 
// P : Point to be projected
// n : Plane _unit_ normal vector
// d : Distance of plane to the origin
// returns: The point Q along the ray that intersects the plane.
Vector3 HitPlaneWithRay(Vector3 L, Vector3 P, Vector3 n, double d)
{
    double t = (d-Dot(L,n))/Dot(P-L,n);
    return L + t*(P-L);
}
// Intersect ray with floor (Normal=[0,1,0], Distance=0)
Vector3 HitFloorWithRay(Vector3 L, Vector3 P)
{
    return HitPlaneWithRay(L, P, Vector3.J, 0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将点投影到平面上的投影矩阵 的相关文章

  • 在 Matlab 中生成加权随机布尔矩阵

    我想生成一个5x5MatLab 中的矩阵仅由 1 和 0 组成 但是我希望能够设置任何值为 1 的可能性 我希望任何元素有 90 的机会为 1 而不是 0 然而我不希望总是有 90 的 1 和 10 的 0 我只是希望这种情况更有可能发生
  • Matlab cellfun 上的函数 strfind

    我想用cellfun功能于strfind函数在另一个字符串元胞数组中查找字符串元胞数组中每个字符串的索引 以将它们排除在外 strings aaa bbb ccc ddd eee fff ggg hhh iii jjj excludedSt
  • SSE,行主要与列主要性能问题

    出于个人和娱乐目的 我正在使用 SSE 4 1 编写一个 geom 库 我花了最后 12 个小时试图理解处理行主要与列主要存储矩阵时的性能问题 我知道 Dirext OpenGL 矩阵是以行主顺序存储的 因此对我来说 将矩阵按行主顺序存储会
  • R 中的循环数组

    我遇到以下问题 我有一个尺寸为 dim x 46 13 30 的大数组 x 我正在尝试计算一个新的矩阵 M 30 598 它基本上包含第一列中每个 切片 的第一个元素 第二列中的第二个元素 依此类推 最终 我想与包含每个网格单元的所有元素的
  • 在 R 中将因子矩阵转换为二进制(指标)矩阵的最有效方法

    我可以想到几种方法来转换这种类型的矩阵 数据框 dat data frame x1 rep c a b 100 x2 rep c x y 100 head dat x1 x2 1 a x 2 b y 3 a x 4 b y 5 a x 6
  • 如何使用浮点数组中的数据初始化 cv::Mat

    我需要创建一个cv Mat用我的数据初始化的变量float 大批 这应该是基本的 但我很难弄清楚 我有代码 float matrixAB lt 120 floating point array created elsewhere gt cv
  • 将矩阵从 3d 重塑为 2d 并保持特定顺序

    我想将 4x3x5 形式的矩阵调整为 20x3 的二维矩阵 但同时保留顺序 如下所示 功能reshape 不保留这个特定的顺序 我怎样才能以最简单的方式实现这一点 让我们一劳永逸地解决这些跨越三维的串联和切割问题吧 第一部分 3D 到 2D
  • Matlab:通过扩展向量来扩展矩阵

    我有一个dxmxn matrix A 解释 对于每个n 有m维度向量d 我想将每个 d 维向量扩展如下 考虑一个向量v维度 d 1 2 d 它是 x 1 x 2 x d 但为了简单起见 我删除了 x 目标是延长v获得一个d d向量形式 1
  • 从上三角初始化对称 Theano dmatrix

    我正在尝试拟合一个部分由对称矩阵参数化的 Theano 模型A 为了加强对称性A 我希望能够构建A通过仅传入上三角形中的值 等效的 numpy 代码可能如下所示 import numpy as np def make symmetric p
  • 将列表与 R 中的矩阵行进行匹配

    a 是列表 b 是矩阵 a lt list matrix c 0 2 0 1 0 2 0 0 1 0 0 0 0 0 2 2 4 matrix c 0 1 0 0 0 1 1 0 0 0 0 0 3 matrix c 0 0 0 0 2 0
  • 如何从二进制文件写入/读取特征矩阵

    要将 Eigen Matrix 写入文件 我真的很喜欢使用以下命令 typedef Eigen Matrix
  • rbind 命名向量到不同长度的矩阵

    我正在尝试将命名向量绑定到矩阵上 命名向量的长度与矩阵不同 gt m lt matrix data c 1 2 3 nrow 1 ncol 3 dimnames list c c column 1 column 2 column 3 gt
  • 将 R 中的向量按特定顺序转换为下三角矩阵

    我有一个向量 其中元素的顺序很重要 比如说 x lt c 1 2 3 4 我想将我的向量排列成具有特定顺序的下三角矩阵 其中每行包含向量的前一个元素 我的目标是获得以下矩阵 lower diag matrix 1 2 3 4 1 4 0 0
  • Python中矩阵元素的双重求和

    基于下面的简化示例 我想在我的代码中 from sympy import import numpy as np init printing x y symbols x y mat Matrix x 1 1 y X 1 2 3 Y 10 20
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • Python 将列表追加到列表中

    我正在尝试编写一个通过矩阵的函数 当满足条件时 它会记住该位置 我从一个空列表开始 locations 当函数遍历行时 我使用以下方法附加坐标 locations append x locations append y 函数末尾的列表如下所
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • 融化R中的下半矩阵

    如何融化下半三角形加对角矩阵 11 NA NA NA NA 12 22 NA NA NA 13 23 33 NA NA 14 24 34 44 NA 15 25 35 45 55 A lt t matrix c 11 NA NA NA NA
  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm

随机推荐

  • C# 发送 HTML 和文本电子邮件 - 最优雅?

    同时发送 HTML 和文本电子邮件是最佳做法吗 如果我只发送 HTML 有什么危险 我在想下面这样的事情 来自http johnnycoder com blog 2009 04 15 net mailmessage linkedresour
  • 重置 HTML 表中的奇数/偶数序列

    我担心答案是否定的 但只是想尝试确认一下 我将表格的每隔一行设置为灰色背景 table tr nth child odd background color eee 这工作正常 但表中还嵌入了标题行 我希望奇数 偶数模式能够重置并在每个标题行
  • 使用 Freemarker 中的参数调用 Java 方法

    以下 FTL 标记对我来说效果很好 并在我的服务器端 JiveActionSupport 对象中调用 getWidgets lt list widgets as widget gt do something with widget sku
  • Heroku CLI 错误

    无法再使用 Heroku CLI Error Installing Heroku Toolbelt v4 done For more information on Toolbelt v4 https github com heroku he
  • BackboneJS 重新排列集合中模型的最佳方法,同时维护每个模型的 0 索引序数属性

    我在这里遇到一个问题 我有一个 BackboneJS 模型的集合 每个模型都有一个 序数 属性来跟踪其在集合中的顺序 这是我的播放数据 var ex group test data title PRE EXERCISE id 0 ordin
  • 使用 Python TKinter / imageTK 在屏幕上的图像之间淡入淡出

    我是一个Python新手 一直在制作一个有点奇怪的幻灯片脚本 该脚本循环显示图像 并且还从另一个文件中获取变量以 解决 图像 我确信我的代码是悲剧性的 但它确实有效 见下文 我的问题是 如何让它在图像之间淡出 而不是暂时变成白色 然后转到当
  • OutlinedTextField 不会在 Compose 中调整为最小宽度

    我试图使 OutlinedTextField 见下图 充当 wrap content 理想的情况是它足够大以适合内部文本500g如果用户编辑该字段 则展开和收缩 如果我没记错的话 这可以通过 非 Compose ConstraintLayo
  • 如何使 Observable 在 1 秒的时间间隔后发出字符

    我刚刚开始使用 RxJava android 为了练习和入门 我想让 observable 每 1 秒发出字符串中的字符 我该怎么做 这是我到目前为止所尝试过的 它只是立即发出字符串 Observable
  • jQuery Cycle 插件 - 暂停/恢复奇怪的行为

    我有一个使用很棒的循环插件运行的幻灯片 当您单击演示中的按钮时 我会在页面上显示一个隐藏层并发送 暂停 命令来循环 我有两个问题 当收到暂停命令时 循环立即翻转回序列中的第一张幻灯片 为什么 并且不会触发我的之前 之后回调 关闭图层后 我发
  • 正则表达式用于 [] 之间的任何内容

    我需要找到 的正则表达式 例如 如果字符串是 Hi Stack 这是我需要 Find 的 Tag 它应该返回 堆栈 标记 查找 非常简单 您只需要 1 用反斜杠转义括号 2 使用 捕获内容 括号是一个捕获组 它们捕获其内容以供以后使用 后面
  • 如何通过复制上一行来动态创建新行

    我有一个如下所示的数据框 编辑后的数据框 df pd DataFrame subject id 1 1 1 1 1 1 1 2 2 2 2 2 time 1 2173 04 03 12 35 00 2173 04 03 12 50 00 2
  • Android Intent.ACTION_VIEW

    我需要用户选择自己的播放器来播放视频 我尝试 public class VideoViewActivity extends Activity Override public void onCreate Bundle savedInstanc
  • 比较名称之间的相似度

    我必须根据名称对一些数据进行交叉验证 我面临的问题是 根据来源 名称略有不同 例如 L L AIR CONDITIONING vs L L AIR CONDITIONING Service BEST ROOFING vs ROOFING I
  • 处理异常的示例代码

    我是 Android 移动应用程序开发新手 我想知道如何处理异常HttpConnection相关异常或任何其他异常 我需要显示一个AlertDialog给用户 请提供示例代码或项目源代码以了解我如何处理HttpConnection或类似类型
  • 在 iPhone 应用程序中显示 HTML

    如何在 iPhone 的 textview 中打开 url 是否可以显示数据links photos和所有html entities 您可以使用 UIWebView 从文件加载静态包含 html 照片 css javascript NSSt
  • 将大字符串写入文件的最佳方法

    在 C 中 我正在读取中等大小的文件 100 KB 1 MB 修改部分内容 最后写入不同的文件 所有内容均为文字 修改是作为字符串对象和字符串操作完成的 我目前的做法是 使用以下命令读取原始文件中的每一行StreamReader Open
  • Firefox 拖动 div 就像拖动图像一样

    我正在使用以下 HTML CSS 和 Javascript 代码 如果您想测试的话 可以将其放在一个文档中
  • 从数据框中删除控制字符空格

    我有一个数据框 df 通过它我可以使用它来获取列表列表 data list map str n tolist for n in df values 之后我从这样的数据中替换特定的控制字符 data e replace u xa0 u for
  • SignalR WebSockets 在本地工作但不在服务器上工作

    我正在尝试让 Web Sockets 作为使用 SignalR 2 4 2 的 ASP NET 4 8 Framework 应用程序的协议 它可以在本地主机上运行 Windows 10 Pro 的 Visual Studio 2019 上正
  • 将点投影到平面上的投影矩阵

    如何确定 4x4S矩阵 以便 P 在 XZ Y 0 平面上投影到 Q 中 Q S P 射线有坐标r t L t P L 这是组件形式 r x L x t P x L x r y L y t P y L y r z L z t P z L z