我在一個屏幕座標空間中工作,它不同於經典的X/Y座標空間,其中我的Y方向在正向下降,而不是向上。C#矢量數學問題
我也試圖弄清楚如何讓我的屏幕上的圓始終背離屏幕的中心點。
如果我的屏幕的中心點在x(200)y(300)並且我的圓心的點在x(150)和y(380),那麼我想計算圓的角度應該面對。
目前,我有這樣的:
Point centerPoint = new Point(200, 300);
Point middleBottom = new Point(200, 400);
Vector middleVector = new Vector(centerPoint.X - middleBottom.X, centerPoint.Y - middleBottom.Y);
Vector vectorOfCircle = new Vector(centerPoint.X - 150, centerPoint.Y - 400);
middleVector.Normalize();
vectorOfCircle.Normalize();
var angle = Math.Acos(Vector.CrossProduct(vectorOfCircle, middleVector));
Console.WriteLine("Angle: {0}", angle * (180/Math.PI));
我不是得到什麼我期望的那樣。
我會說,當我在我的圈子的x(150)和y(300)中輸入時,我期望看到90度的旋轉,但我沒有得到那個...我得到180!
在這裏的任何幫助將不勝感激。
乾杯, 馬克
圓圈如何面向方向?它具有∞倍的徑向對稱性。此外,你不斷改變圓的中心。是(150,380),(150,400)還是(150,300)? – outis 2010-04-22 07:15:37