Tag: 几何弧

SceneKit轨道转换

所以从SceneKit开始,所有的东西都进行得很好,直到我偶然发现了转换,认为它会像层次上的CA3d *转换。 不过,看来我完全错误了,转换工作在Z轴的工作方式上完全不同。 例如,我正试图完成一个3d轨道式的运动,类似于旋转木马的样子。 这块CA3D代码出色地做到这一点: var trans = CATransform3DIdentity trans = CATransform3DRotate(trans, deg * (Float(M_PI)/180), 1, 1, 0) trans = CATransform3DTranslate(trans, 0, 0, 100) layer.transform = trans 如果应用于具有不同“deg”值的多个对象,则会获得一个很好的圆形3d轨道外观。 与SceneKit相同产生不同的结果: var trans = SCNMatrix4Identity trans = SCNMatrix4Rotate(trans,Float(angleTemp*(M_PI/180)), 1, 1, 0) trans = SCNMatrix4Translate(trans, 0, 0, 100) node.transform = transform 实际上,旋转之后,Z值轴根据CAT3D +图层中应用的旋转进行转换和平移,但是在SceneKit中,Z轴始终保持不变,因此平移只会将它们一起移动,所以您只需将其压扁看。 所以我明白这是在真正的3D空间中工作,但现在看来我不得不与Sphereical和Ellipsemath工作一样。 所以任何人都可以给我提示如何做我想做的事情? 我现在正在试验球形math和使用SCNMatrix4Translate,但我还没有得到正确的math呢。 我想我需要的是用公式来计算椭圆的xyz,我之后是非常类似的东西: http://en.wikipedia.org/wiki/Ellipse#mediaviewer/File:Conicas1.PNG […]

在Objective-C中绘制起始和结束angular度的椭圆

我正在编写一个iPad应用程序,在该应用程序中,将呈现形状的XML对象呈现在屏幕上的graphics中。 我想渲染的对象之一是弧线。 基本上这些弧为我提供了一个边界矩形以及一个开始和结束angular度。 给定属性: X ÿ 宽度 高度 由startAngle endAngle 有了这些值,我需要绘制弧(其实质上是椭圆的一部分)。 我不能使用以下内容: UIBezierPath *arc = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(x, y, width, height)]; [UIColor blackColor] setStroke]; [arc stroke]; 因为它绘制了一个完整的椭圆。 基本上我需要上面的,但它需要考虑到开始和结束的angular度,所以只有一部分的椭圆显示。 我想这将涉及绘制一个三次贝塞尔曲线或二次贝塞尔曲线。 问题是我不知道如何计算我给出的信息的起点,终点或控制点。