首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android如何判断当前点击位置是否在圆内部

,而我们可以通过计算当前点击位置来判断ImageView是否相应触摸事件。...要实现这个效果并不难,首先,先计算出圆中心点坐标(x1,y1),注意,x1,y1是相对于屏幕坐标,不是相对于布局坐标; 然后获取当前按下坐标(x2,y2),只需要计算出当前按下坐标(x2...,y2)与圆心(x1,y1)距离d长度,然后与圆半径r相比较,如果d r则当前按下点在圆之外,如果d<r,则当前按下点在圆之内, 如下图所示: ?...x坐标与圆心x坐标的距离 int distanceX = Math.abs(vCenterX-lastX); //点击位置y坐标与圆心y坐标的距离 int distanceY =...Math.pow(distanceY,2)); //如果点击位置与圆心距离大于圆半径,证明点击位置没有在圆内 if(distanceZ r){ return false;

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

《iPhone X ARKit Face Tracking》

每一个face anchor提供了包含脸部位置,方向,拓扑结构,以及表情特征等信息。比较遗憾是,当前版本只支持单人脸识别,未来如果ARKit提供多人脸识别后开发者应该也能较快进行版本升级。...人脸位置和方向 父类ARAnchortransform属性以一个4*4矩阵描述了当前人脸在世界坐标系位置及方向。...面部表情追踪 blendShapes属性提供了当前人脸面部表情一个高阶模型,表示了一系列面部特征相对于无表情时偏移系数。...创建人脸AR体验 以上介绍了一下使用ARKit Face Tracking所需要了解新增接口,下面来详细说明如何搭建一个app以完成人脸AR真实体验。...:(SCNNode *)node forAnchor:(ARAnchor *)anchor; 那么如何知道face tracking失败呢?

1.9K30

《 iPhone X ARKit Face Tracking 》

每一个face anchor提供了包含脸部位置,方向,拓扑结构,以及表情特征等信息。比较遗憾是,当前版本只支持单人脸识别,未来如果ARKit提供多人脸识别后开发者应该也能较快进行版本升级。...人脸位置和方向 父类ARAnchortransform属性以一个4*4矩阵描述了当前人脸在世界坐标系位置及方向。...面部表情追踪 blendShapes属性提供了当前人脸面部表情一个高阶模型,表示了一系列面部特征相对于无表情时偏移系数。...创建人脸AR体验 以上介绍了一下使用ARKit Face Tracking所需要了解新增接口,下面来详细说明如何搭建一个app以完成人脸AR真实体验。...:(SCNNode *)node forAnchor:(ARAnchor *)anchor; 那么如何知道face tracking失败呢?

3.6K00

ARKit 初探

只有这几个基本概念了解清楚之后,我们才能清楚知道如何去写一个AR程序。 几个重要概念 空间定位与方向追踪 这个是通过 ARCamera 获取到视频帧,再经过 VIO 计算出来。...快速移动 通常情况下检测和估算 3D 姿态只会借助图片,如果摄像头移动太快图片就会糊,从而导致追踪失败。但 ARKit 会利用视觉惯性里程计,综合图片信息和设备运动传感器来估计用户转向位置。...其中背景可以是从 ARCamera捕获视频帧。而虚拟物体由 rootNode 存储,它就是前面介绍 SCNNode。 ARAnchor 包含真实世界位置和方向信息。...,然后通过 任意门 这个实例告诉了大家如何写一个 ARKit 程序。...这个 任意门 可以应用在很多场景中,大家可以通过这个实例进行扩展,充份发挥自己想像力。 其实本节最最关键大家知道 ARKit中那些基本概念。

2.3K20

ARKit:增强现实技术在美团到餐业务实践

这样的话,即便是在夜晚,甚至遮住摄像头,商家位置也能够正确进行展现。而且剧烈晃动带来影响很小,商家位置虽然会出现短暂角度偏差,但是在传感器数值稳定下来后就会得到校准。...商家坐标 商家坐标的确定,包含水平坐标和垂直坐标两部分: 水平坐标 商家水平位置只是一组经纬度值,那么如何将它对应到 ARKit 当中呢?我们通过下图来说明: ?...ARSCNView 是 SCNView 子类,它做了三件事: 将设备摄像头捕捉每一帧图像信息作为 3D 场景背景 将设备摄像头位置作为 3D 场景摄像头(观察点)位置 将 ARKit 追踪真实世界坐标轴与...卡片朝向 SceneKit 会在渲染每一帧之前,根据 SCNNode 约束自动调整卡片各种行为,比如碰撞、位置、速度、朝向等等。...使用 SCNBillboardConstraint 可以解决这个问题,卡片朝向始终与摄像头朝向平行。 ?

2.1K20

建立您第一个AR体验

启用平面检测后,ARKit会为每个检测到平面添加和更新锚点。默认情况下,ARSCNView类为每个锚点添加一个SCNNode对象到SceneKit场景。...您视图委托可以实现向场景添加内容renderer(_:didAdd:for:)方法。当您将内容添加为与锚对应节点子节点时,类会自动移动该内容,因为ARKit会细化其对平面位置估计。...为了显示每个平面的当前估计形状,此示例应用程序还实现了renderer(_:didUpdate:for:)方法,更新ARSCNPlaneGeometry和SCNPlane对象以反映来自ARKit最新信息...class ARWorldTrackingConfiguration 使用后置摄像头配置,跟踪设备方向和位置,并检测真实世界表面,以及已知图像或对象。...class ARPlaneAnchor 有关在世界跟踪AR会话中检测到真实世界平面的位置和方向信息。

1K20

SceneKit_入门11_粒子系统

SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit...SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上3D文字 学习成为一种习惯 粒子系统是什么?...5.Reactor(反应堆) 学习成为一种习惯 6.Smoke(烟) 学习成为一种习惯 7.Star(✨) 学习成为一种习惯 以上就是SceneKit 框架中提供给我们几种粒子系统,下面我做个简单例子帮助大家学习如何简单使用粒子系统...scnView.scene = [SCNScene scene]; scnView.allowsCameraControl = TRUE; [self.view addSubview:scnView]; 创建摄像头...addChildNode:boxNode]; 创建一个粒子系统文件 学习变成一种习惯 学习变成一种习惯 如何把粒子添加到刚才创建四方体上呢?

81811

iOS ARKit教程:赤手在空中绘画

它将设备摄像头拍摄实时视频作为场景背景,并自动将场景与现实世界相匹配,假设设备是这个世界上一个移动摄像头。...如果我们想它看起来就像在平面上打印一样,我们应该始终保持我们绘图节点位置在相同Y值上。 平面探测是通过ARKit提供回调函数完成。...我们使用它来添加我们自己平面节点,它也是不可见,但是它包含关于anchor中平面方向和位置。 那么位置和方向如何保存在ARPlaneAnchor中?位置、方向和规模都被编码在一个4x4矩阵中。...位置、方向和规模都被编码在一个4x4矩阵中。无论如何,我们可以通过描述这个4x4矩阵来规避这一点:一个包含4x4浮点数出色二维数组。...我们会要求用户把他们手放在桌上,就好像他们拿着一支笔,确保他们thumbnail 面对摄像头,然后他们就会在屏幕上点击thumbnail 。这里需要阐述两点。

1.8K10

SceneKit_入门06_行为动画

学习成为一种习惯 学习目标 1.了解SceneKit 游戏框架中包含行为动画种类 2.掌握常用行为动画 ---- 都有哪些动画行为 移动 a.移动相对于当前位置 + (SCNAction...NSTimeInterval)duration; + (SCNAction *)moveBy:(SCNVector3)delta duration:(NSTimeInterval)duration; b.移动到指定位置...+ (SCNAction *)moveTo:(SCNVector3)location duration:(NSTimeInterval)duration; 旋转 a.相对于当前位置旋转 + (SCNAction...; + (SCNAction *)rotateToAxisAngle:(SCNVector4)axisAngle duration:(NSTimeInterval)duration; 缩放 a.相对于当前尺寸缩放...程序员最爱 练习 1.创建一个正方体 2.其不断自转 3.其在y轴方向不断移动 ? 动画分解图 创建工程 ? 学习很好玩 添加游戏框架 ?

1.3K10

SceneKit_入门08_材质

SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上3D文字 学习成为一种习惯 干活来袭前奏 创建工程 学习变成一件开心事情 添加游戏框架...// 创建摄像头 SCNCamera *camera = [SCNCamera camera]; SCNNode *cameraNode = [SCNNode node]; cameraNode.camera...enum : NSInteger { // SCNFilterModeNone = 0, // 当这个位置没有纹理颜色时,会采样离他最近颜色值 SCNFilterModeNearest =...1, //当这个位置没有纹理颜色时,线性插值颜色作为自己颜色 SCNFilterModeLinear = 2, } SCNFilterMode; 默认值为 SCNFilterModeLinear...设置自身发光 特点: 自己能发光,不能照亮别的物体 首先我们添加一个黑色聚光灯 SCNNode *spotLightNode = [SCNNode node]; spotLightNode.position

1.2K40

iOS版 使用ARKit和Swift创建交互式Domino游戏

将以下变量添加到类顶部: var dominoes: [SCNNode] = [] 最简单形式命中测试是确定用户触摸屏幕2D位置是否与现实世界中任何虚拟对象或在我们情况下与平面相交。...要做到这一点,我们必须保存先前放置多米诺骨牌位置,然后计算它到我们命中测试的当前位置距离。...如果没有,我们将previousPosition属性设置为hit-Test结果位置并返回。 我们得到了命中测试结果的当前位置。 我们计算前一个位置当前位置之间距离。...为了计算每个多米诺骨牌应该面对方向,我们必须做一些数学运算。 ? 5.jpg 从上图可以看出,我们目前情况类似于左边图表,每个多米诺骨牌面向相同方向。...我们希望它看起来像右边图表,以便我们放置每个新多米诺骨牌都能正确旋转。要做到这一点,我们必须计算前一个多米诺骨牌位置当前位置之间角度,并相应地旋转新多米诺骨牌。

2.3K30

SceneKit_中级05_力使用

4.力都能对那些类型物体产生影响呢?怎么模拟龙卷风呢? 5.如何所有物体失重呢? ... 你在学习一个东西时候,应该想出很多问题,这样我们才能带着疑问探索,你会觉得很好玩。...总结: 可以设置位置,力朝向设置位置。...提示: 创建这个力,需要设置力位置和力大小 创建电场 + (SCNPhysicsField *)electricField; 提示: 这种力大小,取决于物体带电荷多少和距离磁场距离...提示: 电场默认属性是正 如何创建带电荷节点对象呢?...下面带大家实现下面的效果 学习成为一种习惯 走进代码世界 1.创建工程(略) 2.在控制器中添加框架 学习成为一种习惯 3.创建游戏视图SCNView self.scnView = [[SCNView

59820

VR+全景播放器+头控讲解-06

学习目标 掌握头控部分布局 如何检测头控按钮被选中 如何实现悬停动画 在UIView上面布局我们可以使用UIButton UIView UIImageView等,但是是在3D场景中,我们不能使用UIView...低头菜单出现,抬头菜单消失,这个要根据重力感应在X轴旋转决定 当抬头时菜单总是出现在下方,一旦出现不会跟随照相机转动,当重力感应变化时,我们头控节点绕着y轴旋转 实现步骤 第一步.创建菜单节点...*)createPreviousNode{ /// 第六步-创建播放上一个视频节点 SCNNode* previousNode = [SCNNode node]; previousNode.geometry...,调节一下位置即可!...-vector.z; eulerAngles.z = vector.z; self.controlNode.eulerAngles = eulerAngles; } } 第五步 如何检测点控射线和头控按钮相交

76310

SceneKit_入门07_几何体

SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit...SceneKit_中级02_SCNView 详细讲解 SceneKit_中级03_切换照相机视角 SceneKit_中级04_约束使用 SceneKit_中级05_力使用 SceneKit...SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上3D文字 学习成为一种习惯 学习目标 1.了解SceneKit 游戏框架中系统包含几何对象....2.学习如何将几何形状物体绑定节点上,显示到视图中. ---- 系统提供几何形状讲解 正方体 学习技术很好玩 创建方法 SCNBox *box = [SCNBox boxWithWidth:1...*torusNode = [SCNNode nodeWithGeometry:torus]; // 设置节点位置 torusNode.position = SCNVector3Make(0, 0,

73120

100 行代码写一个手机AR

本节学习目标 学习如何使用SceneKit框架高效开发AR项目 先来看两个效果视频 ? Scenekit_17.gif ?...3D 模型文件 第三步 - 使用重力感应类获取手机旋转角度,模型中视角位置 ---- 代码实现部分 第一步 - 通过照相机捕捉现实生活中场景,这个想必iOS 开发者都很熟悉,我就简单说一下...session.addInput(input) } if(session.canAddOutput(output)){ session.addOutput(output) } Step-5.创建一个预览视图对象用于显示摄像头捕捉到画面...:SCNNode = { // 眼睛节点 let node = SCNNode() node.camera = SCNCamera() node.camera?....A5556ACE-2593-4C8B-B946-E77BC2F0C070.png 上图是demo工程目录 所有内容封装在一个ARView文件中,接下来看看如何使用 // 创建AR场景 self.arView

1.1K20
领券