角度偏移

这篇博客探讨了在3D场景中如何利用Quaternion进行角度偏移操作。通过实例展示了如何围绕Y轴旋转,计算不同角度偏移后的坐标位置,包括向上、向下偏移30度以及左右偏移的方法,涉及Unity3D中的transform和Quaternion相关API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



 private float distance = 50;

// 物体正前方距离的dist的点的坐标
 Vector3 position = transform.rotation * v3.forward *   distance   + target.position;

// 角度偏移
// 偏移量
 Quaternion.Euler(y, x, 0.0f);

// 绕y轴旋转30, 旋转的角度  // x 10米的位置
Quaternion roration = Quaternion.Euler (0f,30f,0f)*tag.rotation;
 newPos = roration * new Vector3 (10f,0f,0f);



// 于正前方的夹角(左,右)
Quaternion ro = Quaternion.Euler (r.eulerAngles.x,r.eulerAngles.y-30f,r.eulerAngles.z);
Quaternion r1 = Quaternion.Euler (r.eulerAngles.x,r.eulerAngles.y+30f,r.eulerAngles.z);
// 当前坐标向上下偏移30度后,距离dist的点的坐标
Vector3 f1 = transform.position + ro * Vector3.forward * dist;
Vector3 f2 = transform.position + r1 * Vector3.forward * dist;

//   2 
Quaternion RO = r * Quaternion.AngleAxis (30f,Vector3.down);
Quaternion R1 = r * Quaternion.AngleAxis (30f,Vector3.up);
// 先算正前方的dist的点,在偏移上下30度。
Vector3 FO = transform.position + Vector3.forward * dist;
Vector3 LeftPoint = RO * FO;
Vector3 RightPoint = R1 * FO;






 private float distance = 50;

// 物体正前方距离的dist的点的坐标
 Vector3 position = transform.rotation * v3.forward *   distance   + target.position;

// 角度偏移
// 偏移量
 Quaternion.Euler(y, x, 0.0f);

// 绕y轴旋转30, 旋转的角度  // x 10米的位置
Quaternion roration = Quaternion.Euler (0f,30f,0f)*tag.rotation;
 newPos = roration * new Vector3 (10f,0f,0f);



// 于正前方的夹角(左,右)
Quaternion ro = Quaternion.Euler (r.eulerAngles.x,r.eulerAngles.y-30f,r.eulerAngles.z);
Quaternion r1 = Quaternion.Euler (r.eulerAngles.x,r.eulerAngles.y+30f,r.eulerAngles.z);
// 当前坐标向上下偏移30度后,距离dist的点的坐标
Vector3 f1 = transform.position + ro * Vector3.forward * dist;
Vector3 f2 = transform.position + r1 * Vector3.forward * dist;

//   2 
Quaternion RO = r * Quaternion.AngleAxis (30f,Vector3.down);
Quaternion R1 = r * Quaternion.AngleAxis (30f,Vector3.up);
// 先算正前方的dist的点,在偏移上下30度。
Vector3 FO = transform.position + Vector3.forward * dist;
Vector3 LeftPoint = RO * FO;
Vector3 RightPoint = R1 * FO;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值