#pragma once#include "cocos2d.h"
USING_NS_CC;typedef struct _EclipseConfig {  //中心点坐标
    CCPoint centerPosition;  //椭圆a长,三角斜边  float aLength;  //椭圆c长,三角底边  float cLength;
} EclipseConfig; class Eclipse:public ActionInterval
{
public:bool initWithDuration(float duration, const EclipseConfig& deltaPosition);virtual void update(float time);virtual Eclipse* clone() const override;virtual Eclipse* reverse(void) const  override;
public:static Eclipse *actionWithDuration(float t, const EclipseConfig& c); protected:EclipseConfig m_sConfig;  Point m_startPosition;  Point s_startPosition;  };

#include "Eclipse.h"static inline float tuoyuanXat( float a, float bx, float c,float t )//返回X坐标
{//参数方程return -a*cos(2*3.1415926*t)+a;
}static inline float tuoyuanYat( float a, float by, float c, float t )//返回Y坐标
{float b = sqrt(powf(a, 2) - powf(c, 2));//因为之前定义的参数是焦距c而不是短半轴b,所以需要计算出b//参数方程return b*sin(2*3.1415926*t);
}//
//TuoyuanBy
//
Eclipse* Eclipse::actionWithDuration(float t, const EclipseConfig& c)//利用之前定义的椭圆的三个参数初始化椭圆
{Eclipse *pTuoyuanBy = new Eclipse();pTuoyuanBy->initWithDuration(t, c);pTuoyuanBy->autorelease();return pTuoyuanBy;
}bool Eclipse::initWithDuration(float t, const EclipseConfig& c)
{if (CCActionInterval::initWithDuration(t)){m_sConfig = c;return true;}return false;
}
void Eclipse::update(float time)
{if (_target){CCPoint s_startPosition =m_sConfig.centerPosition;//中心点坐标float a = m_sConfig.aLength;float bx = m_sConfig.centerPosition.x;float by = m_sConfig.centerPosition.y;float c = m_sConfig.cLength;float x = tuoyuanXat(a, bx, c, time);//调用之前的坐标计算函数来计算出坐标值float y = tuoyuanYat(a, by, c, time);_target->setPosition(ccpAdd(s_startPosition, ccp(x-a, y)));//由于我们画计算出的椭圆你做值是以原点为中心的,所以需要加上我们设定的中心点坐标
    }
}Eclipse* Eclipse::clone() const
{auto a = new Eclipse();a->initWithDuration(_duration, m_sConfig);a->autorelease();return a;
}Eclipse* Eclipse::reverse() const
{auto a = new Eclipse();a->initWithDuration(_duration, m_sConfig);a->autorelease();return a;
}

转载于:https://www.cnblogs.com/yufenghou/p/4165153.html

cocos3 图片按照椭圆运动相关推荐

  1. cocos creator 多张图片 椭圆运动_信阳液位测量图片

    信阳液位测量图片 klte47s 信阳液位测量图片 此外,在仪表橱内,也呵装置100w左右的自炽灯,或者25W左右的红外线灯,定期通电(每次照射2-4h),这样也能有效地对仪表进行驱潮.直接测量可以达 ...

  2. javascript-按圆形排列DIV元素(三)实例---- 图片按椭圆形转动

    $(this).css({"left":Math.sin((ahd*index+ainhd))*radius+dotLeft,"top":Math.cos((a ...

  3. 进程和线程.View椭圆运动

    7.19 进程和线程. //进程:一个运行中的应用程序,就一个进程,他是资源分配的单位,譬如地址空间,系统自动生成主线程 //线程:是cpu分配的基本单位,一个进程运行后系统自动分配一个主线程,你可以 ...

  4. cocos3.10游戏移植到安卓平台教程(c++版本)

    流程简介 现在Cocos3.10移植游戏到安卓平台还是比较简化了,你只需要下载好SDK,JDK,NDK,ANT,配置好坏境变量,安装好JDK.再更改一下android.MK文件,你就直接可以进行编译了 ...

  5. Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存

    Ubuntu 16.04 下安装 Opencv sudo apt-get install libopencv-dev sudo apt-get install python-opencv 或者使用 p ...

  6. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  7. 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存

    code 将下面文档存为load_display_save.py #-*- coding:utf-8 -*- from __future__ import print_function #1 impo ...

  8. java 16进制与图片互转

    十六进制转成图片 /*** 十六进制转成图片* @author Administrator**/public static void saveToImgFile(String src,String o ...

  9. ttf,woff2字体转化为png图片,python读取图片

    20210326 乱码转换的时候 是同一套unicode编码 但是在不同的字体库中对应的字不同 20210324 https://jingyan.baidu.com/article/e73e26c0c ...

最新文章

  1. [数据结构]-散列表(哈希表)
  2. mysql常用语句整理
  3. windows共享使用linux生成的密钥
  4. 【项目管理】敏捷小品:Rupert 工业公司 项目:~Alpha~
  5. 深度学习和目标检测系列教程 14-300:训练第一个 YOLOv3 检测器
  6. centos7 网卡配置vlan_Centos7安装后的一些基础配置
  7. 1.Swift教程翻译系列——关于Swift
  8. Flink学习笔记03:将项目打包提交到Flink集群上运行(Java版)
  9. B站获得英雄联盟赛事直播三年独播版权
  10. 解决ubuntu中zabbix 4.2图形显示乱码
  11. Picasso源码的简单解析(一)
  12. 02-监督学习应用.梯度下降
  13. 《结构方程模型及其应用》学习笔记0504第一、二章
  14. JS高级程序设计(10)
  15. TCP/UDP压力测试工具
  16. 破解版editPlus
  17. 浅析计算机用户身份识别技术,浅谈网络安全之身份认证技术
  18. 任正非千金买马骨:与李一男戏剧性恩怨情仇
  19. Google Common Lisp 风格指南
  20. 单臂路由器互联VLAN实验-Cisco Packet Tracer

热门文章

  1. 如何写一个拼写检查器—Peter Norvig 中文翻译:徐宥
  2. python 正则表达式生成_python正则表达式
  3. sudo su后获取不到JAVA_HOME环境变量的解决方案
  4. 因果分析系列1--入门
  5. 淘宝上线短视频APP鹿刻:害抖音之心无,防抖音之心有
  6. windows下的docker学习
  7. JAVA SE知识整合(暂时完结 五万七字)后续分点详解
  8. MongoDB Node 驱动使用指南
  9. 阿里云容器kubernetes发布nacos2.0.3步骤
  10. 大数据项目篇--电商用户画像