程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【Unity】改變向量的方向而不改變其大小,unity向量

【Unity】改變向量的方向而不改變其大小,unity向量

編輯:C#入門知識

【Unity】改變向量的方向而不改變其大小,unity向量


最近在做一個打磚塊游戲時遇到一個小問題,就是小球有可能會在左右兩個邊界之間做循環往返運動而導致游戲無法繼續進行下去,於是我打算讓小球在垂直撞向邊界時改變一下方向,但是速度不變,嘗試了一些方法但是沒有達到效果。後來想到,速度是一個向量,問題就變成了改變一個向量的方向而不改變它的大小,Google一下找到了這個旋轉矩陣Wiki頁面。
用原向量矩陣[x,y]乘以旋轉矩陣
/// <summary> /// 旋轉向量,使其方向改變,大小不變 /// </summary> /// <param name="v">需要旋轉的向量</param> /// <param name="angle">旋轉的角度</param> /// <returns>旋轉後的向量</returns> private Vector2 RotationMatrix(Vector2 v, float angle) { var x = v.x; var y = v.y; var sin = Math.Sin(Math.PI * angle / 180); var cos = Math.Cos(Math.PI * angle / 180); var newX = x * cos + y * sin; var newY = x * -sin + y * cos; return new Vector2((float)newX, (float)newY); }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved