/**
* 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标
* @param radius 圆心半径
* @param centerCircle 圆心的坐标点
* @param currentPoint 当前的手势所在的坐标点
* @return CGPoint 返回圆的坐标
*/
+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint; +(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint
{
CGPoint cPoint;
CGFloat x = currentPoint.x;
CGFloat y = currentPoint.y;
CGFloat cX ; //圆的X坐标轨迹
CGFloat cY ; //圆的Y坐标轨迹
CGFloat daX; // 圆心到转动按钮的距离的平方
//CGFloat daY;
CGFloat aX; // 圆心到转动按钮的距离
//CGFloat aY;
CGFloat cosX; // 圆心水平方向与转动按钮形成的夹角的cos值 //圆心与触控点的距离的平方(勾股定理)
daX = (x - centerCircle.x)*(x - centerCircle.x) + (y - centerCircle.y)*(y - centerCircle.y);
aX = sqrt(daX); //开根号 //圆心与触控点的距离
cosX = fabs(x - centerCircle.x)/aX; //绝对值
cX = cosX*radius ; // x =R * cosX; 圆心到触控点在水平坐标的X的值
cY = sqrt(radius*radius - cX*cX); if(x<centerCircle.x) //如果X所在的点小于圆心 在圆心的左边
{
cX = centerCircle.x - cX;
}
else
{
cX = centerCircle.x + cX;
} if(y<centerCircle.y)
{
cY = centerCircle.y - cY;
}
else
{
cY = centerCircle.y + cY;
}
cPoint.x = cX;
cPoint.y = cY;
return cPoint;
}

iOS 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标的更多相关文章

  1. 在IOS中根据圆心坐标、半径和角度计算圆弧上的点坐标

    /** 日期:2015-10-15 版本: 1.0.0 -------------------------------------------------------------- 功能说明 ---- ...

  2. PHP版根据经纬度和半径计算出经纬度的范围

    百度地图提供了范围搜索的功能,但是它使用的是百度自己的数据,但是有时候我们需要使用自己的数据,显示在地图上.比如给定两个参数:指定位置(某一处的经纬度lnglat)和搜索半径(r),搜索指定范围内的数 ...

  3. C# - 习题06_从键盘输入半径r,求出圆的面积

    时间:2017-08-24 整理:byzqy 题目:编写一个程序,定义常量 Pi = 3.14159265 , 从键盘上输入半径 r ,求出圆的面积. 代码如下: 1 using System; 2 ...

  4. 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的防御塔类 通过两个坐属性显示防御塔所在的位置 实现思路: 创建防御塔(TowerDefense)类 在该类中定义了两个属性,分别是int类型横 ...

  5. 如何判断一个GPS点是否在以另一个GPS点为圆心100米为半径的圆内(Java代码)

    题目乍一看,无从下手,仔细想了一下,原来只需要判断两个GPS点的直线距离是否<100米即可. Java代码如下: /** * 将两个经纬度坐标转化成距离(米) * * @param 2个GPS经 ...

  6. IOS高级编程之一:多点触摸与手势验证

    前段时间学习了IOS基础的一些控件的使用作为基础,现在开始学习一些高级编程的东西,手势处理器.文件I/O.定位.网络通信.多线程这些,分享一些学习的重点,还是很实用的. 今天就先介绍个简单点得,手势处 ...

  7. Java作业 输入圆的半径计算输出圆的周长和面积

    package text1; import java.util.Scanner; public class text11 { public static void main(String[] args ...

  8. 我的IOS学习之路(三):手势识别器

    在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...

  9. AJ学IOS(44)之网易彩票自定义图片在右边的Button_弹出view_ios6,7简单适配

    AJ分享,必须精品 效果: 注意图里面了吗,其实那个效果做起来真的很简单,在iOS中苹果给我们封装的很好,关键是那个按钮 系统的按钮的图片是在左边的,这里我们需要把他调整到右边,然后呢需要我们自己做一 ...

随机推荐

  1. MyEclipse10安装Log4E插件

    一. Log4E插件下载 下载地址:http://log4e.jayefem.de/content/view/3/2/ 二.安装Log4E插件 将下载下来的压缩包解压缩,如下图所示: 解压缩生成的[d ...

  2. finger-guessing game:2增加游戏进度,界面title及游戏界面

    增加游戏进度,界面title及游戏界面 //初始化引擎组件 init(50, "div_caiquan", 800, 400, main); //定义游戏层,加载进度层.游戏背景层 ...

  3. C/S模式与B/S

    网络程序开发的两种计算模式--C/S模式与B/S模式.两种各有千秋,用于不同场合. C/S适用于专人使用,安全性要求较高的系统: B/S适用于交互性比较频繁的场合,容易被人们所接受,倍受用户和软件开发 ...

  4. poj Kaka&#39;s Matrix Travels

    Kaka's Matrix Travels 题目: 给出一个矩阵.求仅仅能向下或者向右的情况下能得到的最大和.一般的是指遍历一次,而这个是能够反复走K次.每经过一次后就把该点设为0.求最大和. 算法: ...

  5. spring 5.0.1.RELEASE官方任然不支持velocity(平台升级)

    官方说明: Dear Spring community, It is my pleasure to announce that Spring Framework 5.0.1 is available ...

  6. Node.js + Express 构建的订餐系统

    Node.js的版本 - v0.8.12 Express的版本 – v3.3.3  (安装 $ npm install -g express) 系统的登录逻辑是:获取用户名 + 密码,向内网RTX服务 ...

  7. [转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host

    From : http://digdeeply.org/archives/10132139.html 我们在开发测试时,有时web服务器会绑定一个域名,但是因为dns是无法解析的,我们需要设置host ...

  8. Chapter 1 -- UsingAndAvoidingNull

    "Null sucks." -Doug Lea "Null 很恶心!" "I call it my billion-dollar mistake.&q ...

  9. httpModules 不起作用 modules 不起作用 血泪经验

    本人也搜索了哏多解决方案.最后都没有解决... 劝您还会放弃把.. 如果非要用,劝您吧代码写到  Global.asax   里...(血泪经验)

  10. HTTP协议学习【转】

    面试过程中又一个常见的问题,http协议,因为做服务器开发如果用http协议的话,现在各种开源软件都封装好了,python中只需要简单的继承定义好的类,重写get或者post等方法,几行代码就可以搭建 ...