- Posted at 2010/03/10 00:20
http://www.action-scripter.com/blog/trackback/1294
var count:uint = 8; // 복제할 객체 수
var unit:Number = 360 / count;
var centerX:uint = 200; // 원의 중심 X좌표
var centerY:uint = 200; // 원의 중심 Y좌표
var radian:uint = 100; // 원의 반지름
for (var i:uint = unit; i <= 360; i+= unit) {
var it:InfoTxt = new InfoTxt();
it.info_txt.text = "name" + i;
it.x = centerX + radian * Math.sin(Math.PI / 180 * i);
it.y = centerY + radian * Math.cos(Math.PI / 180 * i);
it.rotationZ = Math.atan2(centerY - it.y, centerX - it.x) * 180 / Math.PI;
this.addChild(it);
}
objective-c를 잘 모르기 때문에 플래시에서 먼저 코드를 만들어서 objective-c로 옮겨서 작업하고있는데 플래시만큼 아직 이해력이 부족해서 큰 삽을 들고 작업하고 있습니다. 아마 플래시를 하지 않았다면 objective-c는 시작도 못했을 것 같네요.
float count = [fieldData count];
float unit = 360 / count;
float centerX = spinImage.image.size.width / 2;
float centerY = spinImage.image.size.height / 2;
float radian = spinImage.image.size.width / 2;
float fontSize = 18 - count;
float textCount = 0;
for (int i = unit; i <= 360; i+= unit) {
UITextField * tempField = [fieldData objectAtIndex:textCount];
textCount = textCount + 1;
UIFont *stringFont = [UIFont boldSystemFontOfSize:fontSize];
CGSize stringSize = [tempField.text sizeWithFont:stringFont constrainedToSize:CGSizeMake(70.0f, 90.0f) lineBreakMode:UILineBreakModeWordWrap];
float tx = centerX + radian * sin(M_PI / 180 * i);
float ty = centerY + radian * cos(M_PI / 180 * i);
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(tx, ty, stringSize.width, stringSize.height)];
//label.center = CGPointMake(0, 3);
[label setFont:stringFont];
[label setText:tempField.text];
[label setNumberOfLines:0];
[label setLineBreakMode:UILineBreakModeWordWrap];
float txx = centerX - tx;
float tyy = centerY - ty;
float ag = atan2(tyy, txx) * 180 / M_PI;
NSLog(@"gap:%d unit:%g tx:%g ty:%g ag:%g atan(ag):%g", i, unit, tx, ty, ag, atan(ag));
label.transform = CGAffineTransformRotate(label.transform, ag * M_PI / 180);
[spinImage addSubview:label];
[label release];
}











