罗德里格斯的矢量旋转公式

时间:2017-02-21 03:54:33

标签: javascript matrix linear-algebra

我正在尝试使用罗德里格斯的公式围绕任意轴旋转某个角度。我有这个代码

def signup_page(request):
    template = loader.get_template('user_app/signup_page.html')

    if request.method == "POST":
        ...
        email = request.POST['email']
        kwargs = {
            'username':username, 'password':password, 'first_name':first_name,
            'last_name':last_name, 'email':email
        }
        new_user = User.objects.create(**kwargs)
        new_user.save()

        context = {
            'text':"POST", 'first_name':first_name
        }

        return HttpResponseRedirect(render('signup_page', context, context_instance =RequestContext(request)))
    else:
        return HttpResponse(template.render(RequestContext(request)))

所以我从2个向量开始,我得到它们之间的角度,我得到垂直向量,并将其标准化,然后我测试我的矩阵,看看如果输入v1我是否回到v2。但是我没有得到它。有谁知道我哪里出错了。我认为它在矩阵代码中。我回来了from django.conf.urls import url from user_app.views import signup_page, profile urlpatterns = [ url(r'^signup', signup_page, name="signup_page"), url(r'^profile', profile, name="profile") ]

公式就在这里 https://en.wikipedia.org/wiki/Rotation_matrix轴和角度的旋转矩阵

由于

1 个答案:

答案 0 :(得分:2)

我不认为这里有问题。

np是正确方向的矢量(方向与v2相同),但幅度错误。你可以看到:

console.log(normalize(v2), normalize(np));

结果是:

[0.254385200299, 0.1589907501872, -0.953944501123] [0.254385200299, 0.1589907501872, -0.953944501123]

可以在v2找到

norm(v2) * normalize(np)

由于v1v2的长度非常不同,因此旋转v1只能获得正确的方向,但结果向量的长度仍然会为{{1} }}。您可以通过以下方式看到:

v1

返回:

console.log(norm(v1), norm(np));