gpt4 book ai didi

graphics - 如何将平移应用于坐标向量?

转载 作者:行者123 更新时间:2023-12-04 15:31:50 25 4
gpt4 key购买 nike

我正在尝试实现并了解如何在 GLSL 中执行简单的翻译。为此,我在 Octave 中进行了一个简单的测试,以确保我理解转换本身。

我有以下向量表示嵌入到 4 维向量中的 2D 坐标:

candle = [1586266800, 11812, 0, 0]

这意味着该点的位置为 x=1586266800 和 y=11812

我正在尝试使用以下值应用翻译:

priceBottom = 11800
timestampOrigin = 1586266800

这意味着坐标的新原点将是 x=1586266800y=11800

我构建了以下翻译矩阵:

[ 1 0 0 tx ]
[ 0 1 0 ty ]
[ 0 0 1 tz ]
[ 0 0 0 1 ]

translation1 = [1, 0, 0, -timestampOrigin; 0, 1, 0, -priceBottom; 0, 0, 1, 0; 0, 0, 0, 1]

这个矩阵正确吗?我应该如何将其应用于载体?

我试过:

>> candle * translation1
ans =
1.5863e+009 1.1812e+004 0.0000e+000 -2.5162e+018

这显然行不通。

最佳答案

你的翻译有误。从数学的角度来看,您要进行的转换是:

即您需要使用值为 1 的另一个维度“扩充”您的向量,以便它可用于在矩阵乘法期间将“翻译”信息添加到每一行。

所以,如果我正确理解你的例子

Initial_position   = [1586266800; 11812; 0; 0]   # note: vertical vector
Augmented_vector = [Initial_position; 1]
Translation_vector = [0 ; -12 ; 0; 0] # note: vertical vector

Transformation = eye(5);
Transformation( 1:4, 5 ) = Translation_vector

Translated_vector = Transformation * Augmented_vector;
Translated_vector = Translated_vector( 1:4, 1 )

关于graphics - 如何将平移应用于坐标向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61131618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com