iOS 之物理仿真引擎-UIDynamic简介(三)

iOS开发拓展篇—UIDynamic(捕捉行为)

一、简介

可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动

UISnapBehavior的初始化

  - (instancetype)initWithItem:(id <UIDynamicItem>)item snapToPoint:(CGPoint)point;

 

UISnapBehavior常见属性

  @property (nonatomic, assign) CGFloat damping;

  用于减幅、减震(取值范围是0.0 ~ 1.0,值越大,震动幅度越小)

 

UISnapBehavior使用注意

  如果要进行连续的捕捉行为,需要先把前面的捕捉行为从物理仿真器中移除

 

二、代码说明

在storyboard中放一个view控件,作为演示用的仿真元素。

代码如下:

复制代码
 1 //
 2 //  YYViewController.m
 3 //  13-捕捉行为
 4 //
 5 //  Created by apple on 14-8-8.
 6 //  Copyright (c) 2014年 yangyong. All rights reserved.
 7 //
 8 
 9 #import "YYViewController.h"
10 
11 @interface YYViewController ()
12 @property (weak, nonatomic) IBOutlet UIView *blueView;
13 @property(nonatomic,strong)UIDynamicAnimator *animator;
14 @end
15 
16 @implementation YYViewController
17 
18 -(UIDynamicAnimator *)animator
19 {
20     if (_animator==nil) {
21         //创建物理仿真器,设置仿真范围,ReferenceView为参照视图
22         _animator=[[UIDynamicAnimator alloc]initWithReferenceView:self.view];
23     }
24     return _animator;
25 }
26 - (void)viewDidLoad
27 {
28     [super viewDidLoad];
29 }
30 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
31 {
32     //获取一个触摸点
33     UITouch *touch=[touches anyObject];
34     CGPoint point=[touch locationInView:touch.view];
35     
36     //1.创建捕捉行为
37     //需要传入两个参数:一个物理仿真元素,一个捕捉点
38     UISnapBehavior *snap=[[UISnapBehavior alloc]initWithItem:self.blueView snapToPoint:point];
39     //设置防震系数(0~1,数值越大,震动的幅度越小)
40     snap.damping=arc4random_uniform(10)/10.0;
41     
42     //2.执行捕捉行为
43     //注意:这个控件只能用在一个仿真行为上,如果要拥有持续的仿真行为,那么需要把之前的所有仿真行为删除
44     //删除之前的所有仿真行为
45     [self.animator removeAllBehaviors];
46     [self.animator addBehavior:snap];
47 }
48 
49 @end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文涉及的人体动作的捕捉系统的整体框架由下位机和上位机组成。下位机为分布 在全身的传感节点,实时将传感节点的数据,通过无线模块,发送给PC。上位机软件 平台运行在PC 上,PC 通过无线天线实时接收个传感节点的数据,软件平台分析并处理 这些数据,将解算出的人体姿态实时重构为计算机图形,对人体动作在虚拟的3D 场景 中实时重构。 本文基于微型惯性传感器技术,结合惯性导航原理,通过应用数据融合算法、计算 机图形学相关原理和技术以及相应的编程技术,最终设计完成了人体姿态捕捉系统软件 平台。该软件系统平台主要实现了对多个传感节点发送的数据包进行实时接收,数据包 进行拆包以及数据的预处理;运用了数据融合算法,对多个传感器数据的进行融合,完 成了人体姿态的解算。使用四元数描述人体姿态并完成对人体模型实时驱动,进而完成 人体动作重构。本文针对人体的运动规律和人体结构进行了相关研究,并且简化了人体模型。为了 使人体动作重构的效果逼真且计算量小,本文采用了蒙皮骨骼动画技术。为了使该软件 系统能够在Windows 系统下,能够良好的运行,本文选择了DirectX 图形界面库与MFC 框架结合作为软件的基本框架。调用了DirectX 界面库的相应接口,完成了3D 人体模 型的加载。将人体各个肢体在导航系的坐标转换为屏幕坐标,完成对人体模型的驱动。 从最终的演示动作捕捉效果来看,人体动作跟踪效果良好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值