如何在空间中对齐一个位置?

2024-06-02 08:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一道数学题。假设在某个世界位置有一个面(有3个或4个顶点)。我要平移/旋转网格,使面“面朝”并居中(0,y,0)。要实现这个目标需要什么样的公式?在

Face at original positionFace at desired position

我可以用一个图形用户界面(这个例子只是一个大约90度的x旋转),但是我需要通过一个脚本来完成,所以我需要知道如何在数学上做到这一点。在

编辑: 我还应该注意到,这些向量是网格的一部分,我想旋转(原点在(0,0,0))直到v1在位置v2。在

以下是失败的伪代码:

v1 = vector(0,10,0)
v2 = vector(0,-10,0)

v1 = normalize(v1)
v2 = normalize(v2)

cross = normalize( v2.cross(v1) )  // (0,0,0)
angle = acos( v2.dot(v1) )  // 180

quat  = quaternion(cross,angle) // {w:1,x:0,y:0,z:0}

我本以为四元数是这样的:{w:?,x:3.14159,y:0,z:0}或{w:?,x:0,y:0,z:3.14159}


Tags: 网格目标世界图形用户界面v2公式v1vector
1条回答
网友
1楼 · 发布于 2024-06-02 08:15:41

How we can solve the backward compatibility issue ?

联系这些应用程序的开发人员,警告他们即将到来的权限要求,并鼓励他们提前更新应用程序

或者,不要通过权限保护你的应用程序。如果存在一组已知的有限的客户端应用程序,并且您正在使用兼容的通信机制(例如,基于AIDL的绑定),那么您可以使用getCallingUid()找出请求的客户端,并根据已知应用程序的白名单对其进行验证。您甚至可以检查公共签名密钥是否与预期值匹配,以帮助抵御客户端的黑客版本

另一种可能性是对同一功能有两个单独的服务入口点:

  • 未经许可,0.1版与今天一样工作

  • 0.2版本不仅需要<uses-permission>元素,还需要更改服务的标识(例如,用于查找服务的Intent的不同操作字符串)

这允许您在不破坏旧应用程序的情况下开始加强安全性。然后,您可以提供一个弃用窗口,让0.1客户端在最终完全删除0.1入口点(或者至少用相同的权限保护它)之前有时间移动到0.2

最有可能的是,还有其他的模式——这些都是我脑子里想不出来的模式

相关问题 更多 >