我正在尝试使用罗德里格斯的公式围绕任意轴旋转某个角度。我有这个代码
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 在轴和角度的旋转矩阵
下由于
答案 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)
。
由于v1
和v2
的长度非常不同,因此旋转v1
只能获得正确的方向,但结果向量的长度仍然会为{{1} }}。您可以通过以下方式看到:
v1
返回:
console.log(norm(v1), norm(np));