'Interesting/iPhone'에 해당되는 글 34

  1. 2010.07.31 [iPhone] Compass 구현하기
  2. 2010.07.29 [iPhone] OpenGL ES - lighting설정에서 색깔지정에 대해
  3. 2010.07.27 [ARU] iphone 버전 개발중 1
Interesting/iPhone | Posted by hyena0 2010. 7. 31. 23:52

[iPhone] Compass 구현하기



iPhone 에서 나침반을 구현하려고

할 때, 아래와 같은 작업을 수행하면 됩니다.

사용하고자 하는 클래스에서

CLLocationManagerDelegate의 프로토콜

사용을 선언합니다.

CLLocationManagerDelegate 에는 다음의 

메소드가 있습니다. 

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading


이 메소드를 구현해 주고,  CLLocationManager에서 startUpdatingHeading를 실행시켜주면

구현된 위의 메소드를 실행해서 Heading값을 가져오게 됩니다.

아래는 간단히 예제를 정리해 봅니다.

* header file

#import <XX.h>

#import <XXX.h>

@interface 클래스명 : 슈퍼클래스명 <CLLocationManagerDelegate>{


   .....내용..... 


}


* implementation file 
....

- (void)viewDidLoad { //viewcontroller 라고 가정

        CLLocationManager *locationManager=[[CLLocationManager alloc] init];

locationManager.delegate=self;

locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters;

 

[locationManager startUpdatingHeading];//heading값 호출 시작


.....내용.....


}
....

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{

headingData = newHeading.magneticHeading;//heading 값 중 자기장 값 가져오기

NSLog(@"Magnetic heading value : %f", headingData);//로그로 확인


        ...기타 추가 구현....


}


위와 같이 구현하면 headingData 에서 나침반의 각도값을 가져올 수 있습니다.






OpenGL ES 에서 색깔을 지정할때,

normal 값에 해당하는 색깔의 배열을

만들거나, texture 를 생성해서

색깔을 입힐 수 있습니다.

하지만, 그러고 싶지 않고 단지 

도형전체의 색이 동일하다고 하면

texture 를 입히는 것이 이미지파일 만들고 하는 것이

좀 귀찮을 수 있지요.

다음의 경우를 살펴보면 우선 첫번째 이미지는 빛의 효과를 주지 않았을 경우입니다.



이 경우는 2차원과 같은 느낌이지요. 좋지 않습니다.

다음의 경우는 색을 설정했음에도 불구하고 normal값이 지정되어 있지 않아서 빛의 효과 때문에 색이 전혀 나타나지 않는 경우입니다. 이 경우는 3차원 효과는 나타나나 색이 나타나지 않습니다.



이럴 경우에 glEnable(GL_COLOR_MATERIAL); 를 지정하면 다음과 같이 색과 3차원 효과를 모두 살릴 수 있습니다.



구글링해서 얻은 정보인데 참조하시기 바랍니다. 


Interesting/iPhone | Posted by hyena0 2010. 7. 27. 12:38

[ARU] iphone 버전 개발중



ARU 아이폰 버전을 개발중입니다.

iOS4가 나오는 바람에 카메라 기능에 문제가 

생겨서 더욱 늦어졌지만,

이제 기능을 수정했고 마무리 중입니다.

조만간에 앱스토어에서 만날 수 있을 겁니다.

다만, 국내에는 아직 적용하기 힘들것 같네요.

구글의 지도정보를 가져오다 보니 안드로이드 버전에서도

국내에서는 동작하지 않았는데, 네이버 맵 등에서 정보를 가져오는 

부분을 수정할 때까지는 국내에는 적용하기 어렵겠습니다.