Processing 中自定义旋转的实现

一、首先是关键概念
在 Processing 中希望处理圆周上的点需要

旋转公式:
x = 旋转中心 + 旋转半径 x cos(旋转角度);
y = 旋转中心 + 旋转半径 x sin(旋转角度);

用这一组公式定位一个点,增加旋转角度对象顺时针旋转,减少旋转角度对象逆时针旋转。

二、然后是实现方式

实现代码(顺时针):
x = centX + r * cos (radians(a));
y = centY + r * sin (radians(a));
a++;

实现代码(逆时针):
x = centX + r * sin (radians(a));
y = centY + r * cos (radians(a));
a++;

三、最后是进阶应用
假如旋转是根据另外一个对象来定的,就这样写:

x = object.x + r * cos (radians(a));
y = object.y + r * sin (radians(a));

另外,需要注意的是角度和度数的转换:

角度 -> 度数 degrees(r)
度数 -> 角度 radians(d)

假如我没记错的话~ ;-)

时间: 2024-10-29 19:11:39

Processing 中自定义旋转的实现的相关文章

android开发步步为营之52:AsyncTask处理过程中自定义旋转的菊花

 AsyncTask在处理过程中,我们一般会使用一个转动的"菊花"来显示提示当前用户当前的进度,一般呢,我们都不会用系统自带的ProgressDialog,而是自己设计个动画来实现,菊花转动时,不允许用户点击页面,那么把这个菊花放在AlertDialog自定义的页面上,如果转动过程中,允许用户点击页面其他位置,比如搜索城市,那么把这个进度图片直接放在该页面的xml文件上就可以了.给出转动的菊花实现代码 : ) 第一步:动画anim文件下新增rotate_animation.xml

android中自定义view涉及到的绘制知识

android中自定义view的过程中,需要了解的绘制知识. 1.画笔paint: 画笔设置: <span style="font-size:14px;"> paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(30);//设置画笔宽度 paint.setShadowLayer(

Android中自定义视图View之---前奏篇

前言 好长时间没写blog了,心里感觉有点空荡荡的,今天有时间就来写一个关于自定义视图的的blog吧.关于这篇blog,网上已经有很多案例了,其实没什么难度的.但是我们在开发的过程中有时候会用到一些自定义的View以达到我们所需要的效果.其实网上的很多案例我们看完之后,发现这部分没什么难度的,我总结了两点: 1.准备纸和笔,计算坐标 2.在onDraw方法中开始画图,invalidate方法刷新,onTouchEvent方法监听触摸事件 对于绘图相关的知识,之前在弄JavaSE相关的知识的时候,

Android中自定义视图View之---开发案例

自定义视图View的案例 下面我们就是开始正式的进入自定义视图View了 在讲解正式内容之前,我们先来看一下基本知识 1.我们在自定义视图View的时候正确的步骤和方法 1).必须定义有Context/Attrbuite参数的构造方法,并且调用父类的方法 public LabelView(Context context, AttributeSet attrs) 不然会报错: 2).重写onMeasure方法 @Override protected void onMeasure(int width

vue中自定义指令

在vue中自定义标签,首先要调用vue中一个directive的方法,具体方法:Vue.direction('指令名称',function(){ }); 例如我们要写一个关于颜色的指令,叫v-colorred: 1 Vue.directive('colorred',function(){ 2 3 this.el.style.color='red'; 4 }); 在html中,我直接用v-colorred指令就可以了,例如: 1 <p v-colorred>1234567890</p>

在Tableau中自定义版块地图 (Polygon)

在Tableau的地图报表中有一个‘Filed Map’的类型,可以根据版块来显示数据. 但实际应用中Tableau固有的版块划分可能不是我们想要的,下面介绍如何自定义版块并且用作数据分析. 自定义版块 在Tableau中自定义版块是非常容易的.如下图我们把每个点链接起来就是一个多边形的版块 上面的经纬度就不用说了.State 是我们版块的名字.其中Point Order告诉Tableau链接的顺序. Polygon ID 用来指定各个闭合的区域.如下图,State 都叫Michigan,由两块

linux中自定义回收站

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "[email protected]" $D && echo "moved to $D ok"; } [[email protected] test]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D;  mv "[email protected]" $D &&am

PB中自定义事件ID含义

PB中自定义事件ID含义 单选或多选按钮消息(前缀:pbm_bm) pbm_bmgetcheck 单选按钮或多选按钮是否被选. pbm_bmgetstate 按钮是否加亮. pbm_bmsetcheck 将无线按钮或确认框的选中状态改为未选中状态,反之亦然. pbm_bmsetstate 加亮或不加亮按钮. pbm_bmchange 改变按钮的风格,例如,改为单选按钮或组合框. 单选或多选按钮通知消息(前缀:pbm_bn) pbm_bnclicked 按钮控件被点中. pbm_bndisable

对NSArray中自定义的对象进行排序

本文译自How to sort NSArray with custom objects. 我们开发的每个程序都会使用到一些数据,而这些数据一般被封装在一个自定义的类中.例如一个音乐程序可能会有一个Song类,聊天程序则又一个Friend类,点菜程序会有一个Recipe类等.有时候我们希望在程序中显示的列表数据是按照一定顺序进行排列的,本文我们就来看看在iOS中有哪些方法可以对NSArray中的对象进行排序.下面是目录: 小引 使用NSComparator进行排序 使用NSDescriptor进行