2012-11-22 16 views
10

Podczas tworzenia wykresu kołowego za pomocą działka rdzenia I dodaną animację, że dla danego koduJak uniknąć tego stopnia do błędu radiana?

CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform"]; 
    CATransform3D transform = CATransform3DMakeRotation(DegreesToRadians(360), 0, 0, 1); 
    rotation.toValue = [NSValue valueWithCATransform3D:transform]; 
    rotation.duration = 10.0f; 
    [pieChart addAnimation:rotation forKey:@"rotation"];  

Ten kod daje następujący błąd Semantic problem:

Implicit declaration of function 'DegreesToRadians' is invalid in C99 

Co mogę zrobić dla tego uniknąć?

A także czas pracy daje następujący błąd:

Apple_o Linker id error "_DegreesToRadians", referenced from: 

Dziękuję i pozdrawiam

Vijayakumar

iOS Developer w Rhytha

https://rhytha.com/

Odpowiedz

22

Wystarczy zdefiniować makro jak:

#define DEGREES_RADIANS(angle) ((angle)/180.0 * M_PI) 

i zmień Sposób jak:

CATransform3D transform = CATransform3DMakeRotation(DEGREES_RADIANS(360), 0, 0, 1); 
+0

Dziękuje u bardzo dużo @MidhunMp – Vijay

+0

@VijayakumarNL: z przyjemnością :) –

0
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0/M_PI)) 

napisać ten kod na początku pliku .m gdzie chcesz przekonwertować

daj mi znać, czy to działa, czy nie

0

dla prostych kątów, wystarczy użyć radiany:

Transform3D transform = CATransform3DMakeRotation(2 * M_PI, 0, 0, 1); 

krótka lista typowych kątów:

Degrees | Code 
--------+--------- 
360  | 2 * M_PI 
180  | M_PI 
90  | M_PI_2 
45  | M_PI_4 
Powiązane problemy