ios-根据角度和直径定义CGPoint

问题描述

根据角度和直径定义CGPoint

在drawRect 中定义了一个圆,下面的代码是用来定义圆的弧度。

CGFloat         width           = rect.size.width-rect.origin.x;
CGFloat         height          = rect.size.height-rect.origin.y;
CGFloat         xPos            = rect.origin.x;
CGFloat         yPos            = rect.origin.y;
CGFloat         arcStake        = (width * 2) * 0.25;
CGFloat         radius          = height/2;
CGPoint         centre          = CGPointMake(xPos+width/2, yPos+height/2);
CGFloat         angle           = acos(arcStake/(2*radius));
CGFloat         startAng        = radians(180) + angle;
CGFloat         endAng          = radians(360) - angle;

// Define 2 CGPoints of arc

CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, centre.x, centre.y, radius, startAng, endAng, 0);
CGPathAddLineToPoint(path, NULL, xPos+width/2, yPos+height/2);
CGPathCloseSubpath(path);

定义两个CGPoints 的弧度,如下图的效果:

解决方案

在半径为r的圆中,角度为a的点数有下面的坐标:
其中a是从圆的最右侧点开始测量。

x = r*cos(a) + center.x
y = r*sin(a) + center.y

解决方案二:

一个直径为1200毫米高为250毫米的碟形封头能装多少升水,

时间: 2024-07-30 10:48:44

ios-根据角度和直径定义CGPoint的相关文章

ios重用视图-iOS,重用一个自己定义的视图

问题描述 iOS,重用一个自己定义的视图 像tableview的cell和mapview的anonation那样重用,自己写的一个视图该怎么让它的父视图去重用它? 解决方案 举个例子,你自己有个ScrollView,里面有很多重复的view,然后scrollView可以滑动,实际被显示出来的只有屏幕内的视图 所以你要建立两个array,一个是用来引用正在显示的view,标记为arrayA,一个用来引用屏幕外的view(也就是可重用的视图),标记未arrayB 当你滑动列表时,就动态判断,哪些视图

IOS开发中的CGFloat、CGPoint、CGSize和CGRect

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html CGGeometry类定义几何元素的结构和操作几何元素的函数. 1.数据类型: CGFloat: 浮点值的基本类型CGPoint: 表示一个二维坐标系中的点CGSize: 表示一个矩形的宽度和高度CGRect: 表示一个矩形的位置和大小 typedef float C

ios中怎么定义数组常量?

问题描述 ios中怎么定义数组常量? static const NSArray *imgArr = @[@"引导页1",@"引导页2",@"引导页3"]; 我这样写,报错:initializer element is not a compile-time constant 请问要怎么写? 解决方案 IOS:定义常量iOS 常量和全局变量的定义关于iOS一些常量定义的技巧 解决方案二: 全局变量必须被初始化为一个恒定的值, 如果你想有一个全局变量,

iOS 开发者一定要知道的 14 个知识点

本文讲的是iOS 开发者一定要知道的 14 个知识点, 作为一个 iOS 开发者(现在对 Swift 中毒颇深 ).我从零开始创建应用.维护应用,并且在很多团队待过.在我的职业生涯中,一句话一直响彻耳边:"如果你不能解释一件事情,那你根本就不理解它." 所以为了充分的理解我每天的日常,我创建了一个清单,在我看来,它适合任何 iOS 开发者.我会试着清晰的解释每一个观点.[请随时纠正我,提出你的意见,或者干脆也来一发你觉得应该在列表上的"必须知道"的知识] Topic

iOS设计模式 - 模板

iOS设计模式 - 模板   原理图   说明 定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤.   源码 https://github.com/YouXianMing/iOS-Design-Patterns // // GameProtocol.h // TemplatePattern // // Created by YouXianMing on 15/10/27. // Copyright 2015年 ZiPeiYi.

Android和iOS中Cocos2D日志为什么会出现skip frames

在你运行app在Android或iOS设备或iOS模拟器中时,日志里往往会出现一行: I/Choreographer(28956): Skipped 159 frames! The application may be doing too much work on its main thread. 一个app跳过1个或200个帧在其启动时是十分正常的.在iOS中也是如此: 如果app启动时所花的时间太长,可能会被OS关闭.在iOS里太长被定义为10秒,而且180帧等于3秒.(意味着10秒钟有60

iOS自学笔记--outlet, @property

照猫画虎一两个程序后.也就是画了几个控件,可能会对例子中的一些陌生玩意儿产生疑惑,比如,什么是outlet. 什么是outlet? Apress的书有这么一句话: Absolutely right. Our controller class can refer to objects in the nib file by using a special kind of instance variable called an outlet. Think of an outlet as a point

谈谈为何iOS开发别用宏来定义常量_IOS

首先,预处理命令他不是一个常量!!!! 我们来看一段代码 #define avatar @"60" if (false) { #define avatar @"80" } NSLog(avatar); 这段代码会输出多少,我们将"avatar"定义为了60,然后在一个永远不会执行的代码里面重新定义了"avatar"为80,if语句中的代码永远不会执行,但是在编译时期,编译器会编译这段代码,而这个时候编译器就会将avatar这个

超全面的移动端尺寸基础知识科普指南

  初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪.我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家.从原理说起,理清关于尺寸的所有细节.由于是写给初学者的,所以不要嫌我啰嗦 >>> 现象 首先说现象,大家都知道移动端设备屏幕尺寸非常多,碎片化严重.尤其是Android,你会听到很多种分辨率:480×800, 480×854, 540×960, 720×1280, 1080×1920,而且还有传说中的2K屏.近年来iPhone的碎片化也加