2d旋转的应用

1 :条件1 (已知) 创建一个平面直角坐标系 左上角为(0,0),能够把一个加入了UIPanel组件的物体(名字叫Father)移至UIRoot左上角 Y和Z轴都旋转180度。这样你移动随便一个物体为Father的子物体到左上角 ,你会观察到子物体的坐标是(0,0,0)
        条件2(已知) 物体当前运动点currentPosition 物体下一个运动点nextPosition 的位置(物体运动的点能够有N个)运动的路径能够为不论什么类型的线 直线 曲线都OK
        求:让物体的方向始终对着下一个点,就是获得物体的旋转方向
        以下是答案的代码
if (currentPosition.x - nextPosition.x != 0)
{
angle = Mathf.Rad2Deg * Mathf.Atan((currentPosition.y - nextPosition.y) / (currentPosition.x - nextPosition.x));
}
else
{
angle = 0;
} if (nextPosition.x >= currentPosition.x && nextPosition.y <= currentPosition.y)
{
nowAngle = 360f - angle;//1
}
else if (nextPosition.x >= currentPosition.x && nextPosition.y >= currentPosition.y)
{
nowAngle = 90f - angle + 90f + 180f;//2
// print(angle);
}
else if (nextPosition.x <= currentPosition.x && nextPosition.y >= currentPosition.y)
{
nowAngle = 180f - angle;
}
else if (nextPosition.x <= currentPosition.x && nextPosition.y <= currentPosition.y)
{
nowAngle = 180f + (90f - angle) + 90f + 180f;
} transform.rotation = Quaternion.Euler(new Vector3(0, 0, nowAngle));

代码原理
下图是整个界面的布置 曲线部分仅仅是当中的一条路径 只是能够通用(即能代表不同出发点的曲线)

再看以下的图(大家能够拿起笔画一画,把上图曲线中不同一时候刻的当前点和下一个点做一个连线,然后再把每个当前点放到以下图中的原点。下一个点依照连的线的方向放入以下图中的圆)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


你是不是发现这样我就能把当前点和下一个点放到上图的坐标系中。然后依据切线获得角度了。

是不是非常有用的2D游戏算法呢


不谢 勿喷

欢迎进我的技术q群479853988一起装逼啊 。都是装逼界的等什么呢...

untiy 2d游戏平面直角坐标系的旋转应用的更多相关文章

  1. UWP简单示例(三):快速开发2D游戏引擎

    准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面 ...

  2. 2D游戏与3D游戏的区别 原文:https://zhidao.baidu.com/question/588490865.html

    2D和3D间有哪些不同点呢? 让我们来比较一下,共同找出它俩之间的不同点. 对玩家来说,2D技术和3D技术只是显示数据的方式而已,玩家都是通过二 维的平面显示器来观看它们.对制作者来说,二者的不同之处 ...

  3. UWP简单示例(三):快速开发2D游戏引擎

    准备 IDE:Visual Studio 图形 API:Win2D MSDN 教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面你需要考虑图形.输入和网络 以及相对独立的 ...

  4. QLGame 2d Engine 搭建2d游戏原理

    大家好,2d引擎基于opengl(es) 3d技术,是因为这样比之前的ddraw有很多好处! 1.坐标采用浮点数,可以进行曲线移动 2.如果在ddraw的对图片进行缩放和旋转的时候,是基于点像素的操作 ...

  5. unity3d 2d游戏制作的模式

      经过了4个月不懈的努力,我和图灵教育合作的这本3D游戏开发书预计下个月就要出版了.这里MOMO先打一下广告,图灵的出版社编辑成员都非常给力,尤其是编辑小花为这本书付出了很大的努力,还有杨海玲老师, ...

  6. 《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结

    前几天,个人著作<Unity3D/2D游戏开发从0到1(第二版)>经过七八个月的技术准备以及近3个月的日夜编写,在十一长假后终于完稿.今天抽出一点时间来,给广大热心小伙伴们汇报一下书籍概况 ...

  7. Siki_Unity_1-8_使用Unity开发2D游戏_PongGame

    Unity 1-8 使用Unity开发2D游戏 PongGame 任务1:演示 http://pan.baidu.com/s/1pKUHsev; up2i 任务2:案例介绍 创建PongGame,注意 ...

  8. 2D游戏平滑的迷雾战争效果

    近期刚好有做2D游戏的点光源效果,然后就扩展一下.研究了一下战争迷雾的效果.主要是想实现相似魔兽争霸那种人物走动,然后黑色的战争迷雾随着人物的移动渐渐打开的效果.使用具有渐变透明图片作为光源来使得战争 ...

  9. 地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了

    地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了 四叉树对于区域查询,效率比较高. 原理图

随机推荐

  1. 在openerp撰写消息中增加图片

    openerp的撰写消息中, 在文本输入框中, 具有设置文本字体,设置对齐方式 等多种功能, 就像像写这篇新浪blog一样, 可以输入富文本信息. 美中不足的是, 它不能插入图片. 我们如何才能让op ...

  2. Linux内核中的软中断、tasklet和工作队列具体解释

    [TOC] 本文基于Linux2.6.32内核版本号. 引言 软中断.tasklet和工作队列并非Linux内核中一直存在的机制,而是由更早版本号的内核中的"下半部"(bottom ...

  3. Ubuntu中的Gif动画录制工具

    为了在随笔中插入gif动态图Windows系统上可以使用ScreenToGif这个非常好用的小软件,在Ubuntu系统中选择也很多(可以参考最下面的链接),下面介绍两款ubuntu系统中的录屏软件: ...

  4. 洛谷P1387 最大正方形

    题目描述 题目链接:https://www.luogu.org/problemnew/show/P1387 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输 ...

  5. 导入数据库备份报错1067 – Invalid default value for ‘create_time’

    通过navicat工具导入psc数据库备份文件,报错如下,mysql版本5.7 执行如下语句不通过 DROP TABLE IF EXISTS `guard_user`; CREATE TABLE `g ...

  6. 微信整合的时候 出现这个“redirect_uri 参数错误”

    这是因为你在 微信的 管理中心 / 应用详情 中的授权回调域 只需要写域名就可以了 比如www.xxxxx.com 不需要具体某个页面

  7. 大道至简的C语言内存管理

    C语言内存的开辟和释放需要程序员自己来实现. 而C语言的内存开辟和释放只在stdlib.h里面提供了四个函数,这么简洁的设计就足以完成一切工作. C++里面各种类型的指针漫天飞舞,显得啰嗦冗余. ca ...

  8. 【RS】RankMBPR:Rank-Aware Mutual Bayesian Personalized Ranking for Item Recommendation - RankMBPR:基于排序感知的相互贝叶斯个性化排序的项目推荐

    [论文标题]RankMBPR:Rank-Aware Mutual Bayesian Personalized Ranking for Item Recommendation ( WAIM 2016:  ...

  9. SoapUI利用Groovy对response与断言的处理

    1.对response的处理:(其中Test Request是request的名称) def groovyUtils = new com.eviware.soapui.support.GroovyUt ...

  10. 获取COM组件类型库信息

    类型库type library的作用是什么? 用来描述这个COM组建的接口信息,比如有多少个接口,每个接口有什么函数,函数的描述之类的.MSDN查一下ITypeLib,ITypeInfo,TypeAt ...