三角函数和向量

三角函数
1. 角度和弧度的转换:
radians = degrees * PI / 180
degrees = radians * 180 / PI

2. 非直角三角形的计算:
 已知a,b,和角度theta c,则有: c2 = a2 + b2 - 2ab*cos(theta c)
 
3. 三角函数图:

 有公式: a / sin(theta a) = b / sin(theta b) = c / sin(theta c)
三角函数属于周期性的函数,如sin(a) = sin(a + 2*PI*n),n等于循环次数。

向量:
向量可以用来代表很多重要的概念,位置,方向,切线,表面法线,颜色等等。
向量有大小有方向,而点只有大小。
 
 向量的基本计算如上图。

1. 两个点相加并不一定是合逻辑的,因为没什么实际意义;但两个点相减则是有意义的,结果是两个点之间的距离;

2. 同样的,点也不能缩放,而向量则可以。但是,我们可以计算一系列点的“weighted average”,例如计算中心点或者重心。

3. 向量点乘(dot product):计算结果是一个标量(scalar)
 当用两个标准化过后的向量计算时,两个向量的长度都为1,则可知点乘结果就等于夹角的cos值。

4. 向量叉乘(cross product):叉乘的计算结果是一个新的向量,它同时垂直与原有的两个向量,而计算叉乘长度的公式如下:

通常我们不太在意长度而是比较在意方向,因为计算出一个垂直的向量在CG中非常常用,例如旋转轴,表面法线等等。
因为sin(0o) = sin(180o) = 0.0,所以叉乘可以很块地判定两个向量是否平行(当叉乘结果为(0,0,0)时两向量平行),而不用管他们的长度。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Unity 中使用三角函数来旋转向量 30 度,可以使用以下代码: ``` Vector3 originalVector = new Vector3(1, 0, 0); // 这是原来的向量 float angle = 30f; // 这是旋转的角度 // 计算新向量的 x 坐标 float newX = originalVector.x * Mathf.Cos(angle) - originalVector.y * Mathf.Sin(angle); // 计算新向量的 y 坐标 float newY = originalVector.x * Mathf.Sin(angle) + originalVector.y * Mathf.Cos(angle); // 创建新向量 Vector3 rotatedVector = new Vector3(newX, newY, 0); ``` 请注意,上面的代码仅旋转了原来向量的 x 和 y 坐标,因此它仅适用于 2D 向量。如果要旋转 3D 向量,可以使用更复杂的数学方法。 ### 回答2: 在Unity中,我们可以使用三角函数来旋转一个向量30度。具体而言,可以通过以下步骤进行操作: 1. 首先,我们需要定义一个向量。假设我们要旋转的向量为vec。 2. 接下来,我们需要将30度转换为弧度值,因为Unity中的三角函数使用弧度作为单位。30度等于π/6弧度,即Mathf.PI / 6。 3. 然后,我们可以使用Mathf.Sin和Mathf.Cos函数来计算旋转后的向量的x和y分量。具体计算方法如下: - 旋转后向量的x分量:x_rotated = vec.x * Mathf.Cos(Mathf.PI / 6) - vec.y * Mathf.Sin(Mathf.PI / 6) - 旋转后向量的y分量:y_rotated = vec.x * Mathf.Sin(Mathf.PI / 6) + vec.y * Mathf.Cos(Mathf.PI / 6) 4. 最后,我们可以将计算得到的x_rotated和y_rotated转换向量形式,得到旋转后的向量rotated_vec。可以使用Vector2或Vector3来表示该向量。 通过以上步骤,我们就可以在Unity中使用三角函数将一个向量旋转30度。注意,在使用三角函数进行旋转时,我们需要确保向量的单位和旋转的单位一致。例如,如果向量的单位为米,那么旋转的单位也应为弧度/米。 ### 回答3: 在Unity中使用三角函数(Mathf类中的Sin和Cos函数)可以将一个向量旋转30度。为了进行旋转,我们需要知道旋转角度的弧度值,因此我们需要将角度转换成弧度。在三角函数中,角度和弧度之间的转换公式如下所示: 弧度 = 角度 * (π / 180) 在这个例子中,我们需要旋转30度,所以角度为30。将这个值代入公式中,得出的弧度为: 弧度 = 30 * (π / 180) ≈ 0.5236 现在我们可以使用Sin和Cos函数对一个向量进行旋转。假设我们有一个二维向量(x,y)。我们可以使用Sin和Cos函数来分别计算新的x和y值: 新的x值 = 原始x值 * Cos(弧度) - 原始y值 * Sin(弧度) 新的y值 = 原始x值 * Sin(弧度) + 原始y值 * Cos(弧度) 通过将Sin和Cos函数的计算结果代入以上公式可以得到旋转后的向量。这样我们就可以将一个向量在Unity中旋转30度了。 需要注意的是,这里的三角函数是使用弧度作为参数进行计算的,所以在使用时需要将角度转换成弧度。另外,旋转的方向和旋转的中心点等参数还需要根据具体的需求进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值