草庐IT

PARK变换

全部标签

ios - iPad Air 上应用变换后的 View 移动(视网膜显示屏)

如果我对View应用变换,那么View在iPadAir上的移动会出现滞后。它看起来像CALayer中的隐式动画。我创建了测试project.它应该在iPad模拟器上执行。这是我用于应用转换的代码:CGAffineTransformtransform=CGAffineTransformIdentity;if(_transformSwitch.on){transform=CGAffineTransformRotate(CGAffineTransformMakeScale(2.0,2.0),M_PI/3.0);}self.frameView.transform=transform;这是我用于

ios - 如何让 CALayers 在进行 3D 变换时使用屏幕中心作为消失点?

我在屏幕上有一个2DView网格(我称它们为图block)。每个图block都有一个subview,我在动画block中围绕Y轴旋转。我已经在每个图block上正确设置了sublayerTransform。我正在旋转的所有subview都展示了3D透视图。问题是每个消失点都是图block的中心而不是屏幕的中心,破坏了3D的幻觉。当我在所有图block的父级上设置sublayerTransform时,旋转View不会显示任何透视图。我相信这是因为sublayerTransform仅适用于层的子层而不适用于孙子层。如何使所有旋转View使用相同的消失点?我已经包含了一个绘制不佳的图像来帮助

ios - 将 UIView 透视变换与其他 CATranform3D 相结合

我正在编写一个应用程序,可以使用手势在屏幕上旋转、调整大小和平移Sprite(UIImageView的子类)。我还希望能够对Sprite应用3D透视变换。我的旋转/调整大小/平移功能以及透视变换功能正常工作。但是,它们似乎无法正确协同工作。如果我旋转一个未修改的Sprite,然后尝试倾斜它,Sprite会“重置”它的旋转,然后应用透视。反之亦然;如果我先倾斜,我可以在不重置的情况下应用任何2D变换。这是我正在使用的代码:(旋转、调整大小和平移是使用UIGestureRecognizers完成的,而倾斜使用UISlider)。旋转:-(void)didRotateSprite:(UIRo

iphone - 在不撤消旋转变换的情况下无法撤消缩放变换

这是对上一个问题的跟进。我下面的代码通过缩放和旋转它来动画一个正方形。它通过进行旋转变换并向其添加缩放变换来实现。那很好用。完成后,它会调用throbReset。我曾经让throbReset只是将self'stransform设置为CGAffineTransformMakeScale,这会取消缩放,但也会取消旋转。所以我尝试从当前的transform开始并向其添加unscale,但现在它什么也没做(可见)。CGColorRefcolor=[[colorArrayobjectAtIndex:colorIndex]CGColor];[UIViewbeginAnimations:nilcon

ios - 如何根据相机的位置变换图像

我正在尝试根据观察方向创建图像的透视投影。我在这个领域没有经验,但是我自己无法做到这一点。你能帮帮我吗?有一个图像和一个观察者(相机)。如果相机可以被认为是一个不可见球体上的物体,图像是一个通过球体中心的平面,那么相机位置可以表示为:x=dcos(θ)cos(φ)y=dsin(θ)z=dsin(φ)cos(θ)其中θ是纬度,φ是经度,d是距图像中心所在的球体中心的距离(半径)。我在某处找到了这些公式,但我不确定坐标(我不知道,但在我看来x应该是z,但我想这取决于坐标系)。现在,我需要做的是对我的图像进行适当的转换,使其看起来就像是从相机中看到的(以适当的视角)。您能告诉我几句如何做到这

ios - 如何在 MKMapView 中找到中国变换的逆?

好像是一个knownfactMKMapView(以及一般的Googlemap)在100-600m之间有不同的偏移量,这使得注释在map上显示不正确。根据thisthread,Google有一个名为_applyChinaLocationShift的私有(private)方法,它可以工作,但显然只适用于由CLLocationManager提供的CLLocations。对于任意CLLocations,它返回nil。我正在编写的应用程序只需要在一个城市工作,所以我考虑过使用_applyChinaLocationShift对该区域进行预采样,并在可能的情况下将逆变换存储在已发布的应用程序中。那么

ios - 应用于 CGPath 的比例变换会影响渲染质量吗?

我有一个CGPath(由UIBezierPath创建),我想通过应用CGAffineTransformScale将其缩放到我想要的任何大小。这会影响我的绘图质量(在转换为图像时)吗?如果不会,为什么? 最佳答案 UIBezierPath不是位图图像。它由可用于多种操作的坐标组成,例如:描边、填充、hitTest、alphaMask等。缩放UIBezierPath时,您正在对这些坐标应用几何变换。然后,您可以使用缩放后的路径执行上述操作之一,绘图质量不会受到任何影响。换句话说,使用UIBezierPath绘制类似于绘制矢量化图像。这些

ios - Quartz 2D 的仿射变换序列

我正在尝试使用iOS中的UIAlertView在OSX中模拟不正确的密码输入动画。本质上我希望它向左翻译警报然后向右翻译。这是我正在做的:[UIViewanimateWithDuration:0.5animations:^{alertView.transform=CGAffineTransformTranslate(CGAffineTransformIdentity,200,0);alertView.transform=CGAffineTransformTranslate(CGAffineTransformIdentity,-200,0);}];但这并没有达到预期的效果。警报瞬间向右射

ios - 如何使用多个变换为 CATransform3D 制作动画?

基本上,我围绕一个点旋转图层:CATransform3Dtransform=CATransform3DIdentity;transform.m34=1.0/-500;transform=CATransform3DTranslate(transform,rotationPoint.x-center.x,rotationPoint.y-center.y,0.0);transform=CATransform3DRotate(transform,(rotationAngleFor)*M_PI/180.0f,0.0,1.0,0);transform=CATransform3DTranslate(

ios - 如何使用 4x4 矩阵变换或欧拉角旋转 3d 矢量?

我有一个3d矢量,我正在应用它作为物理力:letforce=SCNVector3(x:0,y:0,z:-5)node.physicsBody?.applyForce(force,asImpulse:true)我需要根据mobiledevice'sposition旋转力我可以使用4x4矩阵变换或欧拉角。vartransform:matrix_float4x4-Thepositionandorientationofthecamerainworldcoordinatespace.vareulerAngles:vector_float3-Theorientationofthecamera,ex