我的应用程序顶部有一个半透明的图像视图,我需要在该视图上显示一个3D立方体(甚至是一个3D外观相似的立方体 - 由3个多边形组成)。登记/> 立方体的每个面都是可触摸的,并且应该在触摸后识别。也就是说,使用它的ID发射一个事件,或者每次发射它自己的事件,这反过来会转动立方体...... 我怎么能做到这一点?
我会尝试想象我的目标:
所以,从这个显示的立方体...
触摸红脸后
此代码只显示一个触发事件的简单触摸按钮,这就是我现在所有的
@implementation cubeView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setBackgroundColor:[UIColor clearColor]];
UIImageView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Label.png"]];
// For RETINA DISPLAY create an image named Label@2x.png and make it twice big in x and in y
[self addSubview:view];
UILabel * lbl = [[UILabel alloc] initWithFrame:CGRectMake(20,20,100,30)];
[lbl setText:@"Hello"];
[lbl setBackgroundColor:[UIColor clearColor]];
[self addSubview:lbl];
}
return self;
}
视图控制器
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *container = [[[UIView alloc] initWithFrame:CGRectMake(100, 0, 400, 200)]
autorelease];
[self.view addSubview:container];
container.alpha = 0.2;
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
b.frame = CGRectMake(0, 0, 201, 98);
cubeView *cb = [[[SS alloc] initWithFrame:CGRectMake(0, 0, 201, 98)] autorelease];
[b setImage:[self imageWithView:cb] forState:UIControlStateNormal];
[container addSubview:b];
[b addTarget:self action:@selector(clicked:)forControlEvents:UIControlEventTouchUpInside];
}
答案 0 :(得分:0)
我不确定你的问题是什么,但是如果你想找到一种旋转立方体的方法,你需要一些指定其边和顶点的坐标。我的项目有一个旋转立方体,它使用旋转矩阵来找到它的最终坐标。你需要以你需要旋转的角度进行旋转。“转动”它,你需要以你喜欢的任何速度/精度步进角度,并在“视图”立方体的连续调用之间保持特定的暂停功能使其逐渐旋转。使用'patch'命令显示多维数据集在matlab中工作。可能在ios dev中有一些类似的功能。