2010-11-12 24 views
5

:Neden Math.Cos yanlış değeri döndürüyor? Benim kod

Vector2 colCircle = new Vector2(); 

colCircle = new Vector2((R * Math.Sin(D)), -(R * Math.Cos(D))); 

ederken:

benim hesap makinesi kontrol
R = 22.627 
D = 89.214 

X değeri doğru fakat Y değeri -0,310 olmalı ama programda o -7,134 olduğunu.

Herhangi bir fikir neden?

+1

Ben senin değerlerini çoğaltmak değil, ancak (çoğu matematik kütüphanesi uygulamalarında olduğu gibi) .net trigonometrik fonksiyonlar radyan açı parametreleri beklediklerini bilmek yardımcı olabilir. – warrenm

+0

Ben programlar X değeri radyan ile fiili birine ne kadar yakın ilginç. – Bloodyaugust

+0

_I o programları X değeri radians._ sinüs fonksiyonu ile gerçek birine ne kadar yakın ilginç 28.5 * π' radyan tam açı 'de,' + 1' maksimal olduğunu düşünüyorum. Bu 89.535 'radyan var. –

cevap

23

trigonometrik fonksiyonlar radyan değil derece bekliyoruz.

+0

Gerçekten. Uh ... Bu tamamen benim için aptal. – Bloodyaugust

+1

Evet - 2 Pi (rad) = 360 (derece) – Marco

+0

Peki neden Math.cos (90 * Math.PI/180) * garip değeri yerine 0 bazı dönmek? –

4

Eğer

colCircle = new Vector2((R * Math.Sin(D*Math.PI/180.0)), -(R * Math.Cos(D*Math.PI/180.0))); 

ile ne değiştirin ve ince olmalıdır. Çünkü/Sin, radyanları derece beklemiyorlar.

+2

Aslında, MathHelper.ToRadians uygulamak daha hızlı oldu. – Bloodyaugust

İlgili konular