[置顶] ios 全景浏览效果demo
2013-06-09 20:15
351 查看
demo功能:全景浏览 效果,可上下左右前后转动浏览。
demo说明:项目中pano.jpg 是贴图 。将这个图贴到球型模型上,摄像机设定为球的中心点,在内向球外观看贴图。
demo截屏:
demo主要代码:plview.m部分(显示全景的view)
demo下载地址:http://download.csdn.net/detail/donny_zhang/5552467
demo说明:项目中pano.jpg 是贴图 。将这个图贴到球型模型上,摄像机设定为球的中心点,在内向球外观看贴图。
demo截屏:
demo主要代码:plview.m部分(显示全景的view)
#import "PLView.h" @interface PLView () - (void)initializeValues; @end @implementation PLView @synthesize type; @synthesize camera; #pragma mark - #pragma mark init methods - (void)allocAndInitVariables { [super allocAndInitVariables]; scene = [PLScene scene]; renderer = [PLRenderer rendererWithView:self scene:[scene retain]]; camera = [PLCamera camera]; } - (void)initializeValues { [super initializeValues]; textures = [[NSMutableArray array] retain]; type = PLViewTypeUnknown; } - (void)reset { if(camera) [camera reset]; [super reset]; } #pragma mark - #pragma mark property methods - (void)setType:(PLViewType)value { type = value; if(sceneElement) [sceneElement release]; switch (value) { case PLViewTypeCylindrical: camera.fovFactorRange = PLRangeMake(kDefaultCylinderFovFactorMinValue, kDefaultCylinderFovFactorMaxValue); sceneElement = [PLCylinder cylinder]; break; case PLViewTypeSpherical: camera.fovFactorRange = PLRangeMake(kDefaultFovFactorMinValue, kDefaultFovFactorMaxValue); sceneElement = [PLSphere sphere]; break; case PLViewTypeCubeFaces: camera.fovFactorRange = PLRangeMake(kDefaultFovFactorMinValue, kDefaultFovFactorMaxValue); sceneElement = [PLCube cube]; break; case PLViewTypeUnknown: sceneElement = nil; break; default: [NSException raise:@"Invalid panorama type" format:@"Type unknown", nil]; break; } if(sceneElement) { sceneElement = [sceneElement retain]; for(PLTexture * texture in textures) [sceneElement addTexture:texture]; [scene addElement:sceneElement]; } } #pragma mark - #pragma mark draw methods - (void)drawView { [super drawView]; [sceneElement clonePropertiesOf:camera]; [scene.currentCamera cloneCameraProperties:camera]; scene.currentCamera.rotation = PLRotationMake(0.0f, 0.0f, 0.0f); scene.currentCamera.position = PLPositionMake(0.0f, 0.0f, 0.0f); if(!isValidForFov && !isValidForOrientation) [sceneElement rotateWithStartPoint:startPoint endPoint:endPoint sensitivity:camera.rotateSensitivity]; [renderer render]; camera.rotation = PLRotationMake(sceneElement.pitch, sceneElement.yaw, sceneElement.roll); } #pragma mark - #pragma mark fov methods - (BOOL)calculateFov:(NSSet *)touches { if([super calculateFov:touches]) { [camera addFovWithDistance:fovDistance]; [scene.currentCamera addFovWithDistance:fovDistance]; return YES; } return NO; } #pragma mark - #pragma mark texture methods - (void)addTexture:(PLTexture *)texture { [textures addObject:texture]; if(sceneElement) [sceneElement addTexture:texture]; } - (void)removeTexture:(PLTexture *)texture { [textures removeObject:texture]; if(sceneElement) [sceneElement removeTexture:texture]; } - (void)removeTextureAtIndex:(NSUInteger) index { [textures removeObjectAtIndex:index]; if(sceneElement) [sceneElement removeTextureAtIndex:index]; } - (void)removeAllTextures { [textures removeAllObjects]; if(sceneElement) [sceneElement removeAllTextures]; } #pragma mark - #pragma mark orientation methods - (void)orientationChanged:(UIDeviceOrientation)orientation { if(camera && sceneElement) { camera.orientation = orientation; sceneElement.orientation = orientation; camera.pitchRange = sceneElement.pitchRange; camera.yawRange = sceneElement.yawRange; camera.rollRange = sceneElement.rollRange; camera.rotation = PLRotationMake(sceneElement.pitch, sceneElement.yaw, sceneElement.roll); } } #pragma mark - #pragma mark dealloc methods - (void)dealloc { if(textures) [textures release]; if(camera) [camera release]; if(sceneElement) [sceneElement release]; if(scene) [scene release]; if(renderer) [renderer release]; [super dealloc]; } @end
demo下载地址:http://download.csdn.net/detail/donny_zhang/5552467
相关文章推荐
- ios 全景浏览效果demo
- [置顶] ios 网页中图片点击放大效果demo
- [置顶] ios 网页中图片点击放大效果demo
- iPhone开发3种导航界面效果+iPad全景浏览demo
- [置顶] ios 一个不错的图片浏览分享框架demo
- [置顶] ios 360度旋转效果demo
- android ListView的类IOS通讯录效果,分类ListView,ListView标题置顶
- 源码推荐(9.16):一个实现QQ空间和Path个人主页的景深效果DEMO,iOS 流式自动布局适配All Screen
- Unity:图片翻动浏览效果Demo
- 【IOS】图片浏览效果(双击图片,弹出层)
- iOS图片浏览Slideshow Demo
- iOS TableVew 侧滑效果~ OC语言~demo
- iOS-全景效果实现
- 猫猫学IOS(二十六)UI之iOS抽屉效果小Demo
- ios 文字上下滚动效果Demo
- ios 组合动画实现图片浏览,效果为图片放大并淡出
- iphone开发十几个实用demo合集 (在iOS代码库中浏览本帖)
- 猫猫学IOS(二十六)UI之iOS抽屉效果小Demo
- [置顶] android仿ios页面跳转效果
- 【IOS】图片浏览效果(双击图片,弹出层)