21 AĞUSTOS 2009, Cuma
Nasıl göster atan2() 0-360 derece için
atan2(y,x) -180°..0° saat yönünde gidiş için geçiş yapar, bu süreksizlik 180° de vardır.
Nasıl 0°..360° değerler göster?
işte benim kod:
CGSize deltaPoint = CGSizeMake(endPoint.x - startPoint.x, endPoint.y - startPoint.y);
float swipeBearing = atan2f(deltaPoint.height, deltaPoint.width);
StartPoint ve bitiş noktası verilen kaydırarak dokunma olayı yönünü hesaplıyorum, hem XY nokta yapılar. Kodu ama atan2f destekleyen herhangi bir dil iPhone için() olacaktır.
Senin için teşekkürler arkadaşlar, genel çözümü ve kod ile yardımcı olur.
Güncelleme: Bundan 6 ay idrak ediyorum uzun değişken adları ile güzel bir işlev erikkallen cevap verdim. Belki başka bir iPhone çaylak yardımcı olacaktır.
float PointPairToBearingDegrees(CGPoint startingPoint, CGPoint endingPoint)
{
CGPoint originPoint = CGPointMake(endingPoint.x - startingPoint.x, endingPoint.y - startingPoint.y); // get origin point to origin by subtracting end from start
float bearingRadians = atan2f(originPoint.y, originPoint.x); // get bearing in radians
float bearingDegrees = bearingRadians * (180.0 / M_PI); // convert to degrees
bearingDegrees = (bearingDegrees > 0.0 ? bearingDegrees : (360.0 bearingDegrees)); // correct discontinuity
return bearingDegrees;
}
CEVAP
21 AĞUSTOS 2009, Cuma
(x > 0 ? x : (2*PI x)) * 360 / (2*PI)
Düzenleme: Oops, yanlış işaret.
Bunu Paylaş:
Nasıl Google Maps Bağlantısı (GÖSTER)a...
Nasıl Uİİmage 90 derece Döndürmek için...
Hata mesajı çözmek için nasıl: "g...
Nasıl göster Model SONRASI bir eylem E...
Automapper - nasıl göster özelliği bel...