草庐IT

ios - 前后摄像头切换由加速度计决定

我正在尝试使用UIAccelerometer在Objective-C中的前后摄像头之间切换。本质上,如果设备面朝上,我希望后置摄像头打开。如果设备面朝下(屏幕朝下),我希望前置摄像头处于事件状态。解决这个问题的最佳方法是什么?我正在通过AVFoundation访问相机。谢谢! 最佳答案 我有一些代码可能会对您有所帮助,这些代码是在我的一个也使用相机的项目中创建的。这是加速度计委托(delegate)的代码,您可以在其中跟踪设备的位置。-(void)accelerometer:(UIAccelerometer*)acceleromet

ios - 用于获取 2 坐标角度的 ccpSub 实现

我想弄清楚ccpSub是如何实现的。有人可以指出这个代码吗?基本上,我遇到了这个用于获取2个坐标之间的角度的解决方案,但它使用的是cocos2d。我不想为了这个功能而下载整个库的麻烦。Getanglefrom2positions不幸的是,我对如何在xcode中实现ccpSub有点迷惑?希望有人能指导我。谢谢。 最佳答案 staticinlineCGPointccpSub(constCGPointv1,constCGPointv2){returnccp(v1.x-v2.x,v1.y-v2.y);}

ios - 基于磁力计和陀螺仪的北计算

我需要计算“朝向”(无论是基于真北还是磁北)。正如在iOS设备上所见,CLLocationManager返回的CLHeading对象通过相应的属性为我们提供了真航向和磁航向。此外,我们可以很容易地看到,这些值与设备的顶部(设备坐标系的正Y轴)相关,这对我的目的不利。我实际上需要的是计算与设备屏幕(Z轴)相关的朝向,因为我不需要指南针,而是AG应用程序之王。问题是,当您将设备旋转到横向时,您会得到从您面对的方向向左或向右的航向值,这正是我最终需要的。据我所知,我可以获得磁力计“原始”数据(以微特斯拉为单位提供给我,每个设备轴的值从128到-128)以及陀螺仪“原始”数据(分为三种类型:欧

iOS:在给定圆的情况下推导出轻敲点的角度

我有一个UIImageView显示一个分成六个相等三角形的圆,对应于:area1在0-60度之间area2在>60-120度之间area3在>120-180度之间area4在>180-240度之间area5between>240-300度area6between>300-360度圆形类似于下图(画的不好请见谅):我想从触摸点得出水龙头所在的区域。例如,如果用户点击圆圈的右上角,则该区域应为区域2:“>60-120”。我得到的输入数据是:包含圆圈的框架的宽度和高度(例如200像素宽,200像素高)点击点坐标关于如何根据上述输入数据推断出点击点落在哪个区域的任何建议?

ios - 跟随圆圈外部路径的 uibuttons 的旋转动画,跟随手指

我正在寻找一些指导来开始制作一个动画,该动画跟踪手指移动并沿着圆圈的外部路径移动一组UIButtons我想象它会有一种左轮手枪的感觉。就像每个人都锁定在底部的位置或者喜欢在这些幻灯片插入之一中滑动提前致谢 最佳答案 (GitHub上的示例代码)其实并没有那么难,只是涉及到很多三角函数。现在,我现在要描述的是不是动画,因为您要求它跟踪手指在标题中的位置。动画会涉及它自己的计时功能,但由于您使用的是触摸手势,我们可以使用此事件具有的固有计时,并相应地旋转View。(TL;DR:用户记录移动的时间,而不是隐式计时器)。跟踪手指首先,让我们

android - android canvas 中位图的同步旋转、平移和缩放

我正在尝试显示一张图片,它可以缩放和平移,并且随着罗盘读数旋转。使用下面的代码,所有三个操作都可以正常工作,但它们会相互影响。这是我想要实现的目标:1.围绕屏幕中心旋转2.将图片的同一部分居中缩放3.平移到图片中需要的位置下面是代码实际发生的情况:1.旋转按预期进行,围绕屏幕中心2.缩放有效,但它围绕图片中心缩放3.只有当angle为零时,翻译才会按预期进行,否则它会朝着错误的方向移动//thecenteroftheviewportfloatcenterX=screen.right/2;floatcenterY=screen.bottom/2;Matrixm=newMatrix();m

android - 如何在android中沿圆圈移动图像?

我想以圆形或360度移动我的球图像,我已经尝试过,但它只在Canvas上绘制球图像,而不是在圆圈中旋转。能否请您提出可行的解决方案或给我一些可以帮助我在圆圈中移动物体的源代码。protectedvoidonDraw(Canvascanvas){//TODOAuto-generatedmethodstubsuper.onDraw(canvas);canvas.drawColor(Color.WHITE);intcx=getWidth()/2;intcy=getHeight()/2;floatangle=5;floatradius=150;floatx=(float)(cx+Math.co

java - 旋转 ImageView 以面对给定的纬度和经度位置

我正在尝试对我的应用程序进行编程,以便我的箭头ImageView将指向给定的android.Location。现在它没有指向正确的方向。由于某种原因,它很糟糕。我认为这是因为我没有考虑到我正确面对的方向。这是我目前正在做的事情:floatangle=GetAngle(myLocation);RotateAnimationanim=newRotateAnimation(0.0f,angle,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);anim.setInterpolator(newLinearInter

java - Android:Canvas Arc,Sweep Gradient Start Angle可以改吗?

我正在尝试绘制一个由渐变填充的圆弧下图就是我想要的下图是我现在的样子正如你在图片中看到的,我的渐变开始得太早了我知道为什么会这样如果我完成圆弧形成一个圆,我会得到这个正如我们所见,渐变从90度开始。但是我的弧度是从135度画出来的,扫到270度我的问题是如何让渐变从135度开始扫到270度?可以吗到目前为止,这是我进行扫描渐变的方法publicvoidsetProgressColourAsGradient(booleaninvalidateNow){SweepGradientsweepGradient=newSweepGradient(baseArcRect.centerX(),bas

Halcon仿射变换vector_to_hom_mat2d 、hom_mat2d_*、vector_angle_to_rigid、hom_mat3d_*总结

二维二维仿射变换,顾名思义就是在二维平面内,对对象进行平移、旋转、缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的)。vector_to_hom_mat2d:这个算子可以建立一个坐标系到另一个坐标系的变换关系,也就是说关系式一旦成立,一个坐标系上的任意像素坐标都可以在与之有关系的坐标系中进行转换。一般常用在图像坐标与机械坐标的转换,然后就可以通过像素坐标来操控机械手走到指定的位置抓取目标等操作。使用此算子建立两个坐标系关系式时需要分别拿到两坐标系中至少3个不共线的坐标,然后一一对应输入到这个算子中,最后生成一个可操作的句柄,此句柄可以通过affine_trans_point_2d