- 13
- 0
- 约1.09万字
- 约 42页
- 2016-12-18 发布于浙江
- 举报
processing 学习第一天笔记
Processing?Month第一天?连接点?第一部分
这篇文章中,我们来看一下如何计算一个圆周上的点的坐标,并将他们连接起来。我们将用灵活的方式来实现基于6个点和18个点的图像
计算
要计算这些点的坐标,必须知道圆上的点数量和圆的半径。本例中,我们将画12个点。
int?numPoint?=?12;
float?radius?=?150;
下一步,我们来算一下每个点之间的角度。众所周知一个整圆的角度是360度或2π弧度,所以用360度除以圆上的点数,就得到两点之间的角度。例子中使用了弧度而不是角度,是因为?cos()?和?sin()?函数的形参是弧度数,不是角度数。Processing中有一些关于圆和半圆的常量,?TWO_PI?就代表了常量PI*2。(这里的PVector其实是类型,代表这一个点)
float???angle?=?TWO_PI?/?numPoint;
for(int?i=0?;?inumberPoints;i++){
????float?x?=?cos(angle?*?i?)?*?radius;
????float?y?=?sin(angle?*?i?)?*?radius;
????point[i]?=?new?PVector(x,y?);
}
我把计算的部分放在了setup()里面,把结果存在了PVector数组里,这样我们就不用在draw函数里一遍又一遍的计算点的x、y坐标。我还用了一个for循环,用来计算每个点的坐标,**angle*i**?会在每个循环中计算出一个点的坐标。
绘制
接下来我们说一下,如何将圆上的点两两连线,我们需要用一个嵌套for循环,来遍历数组中的每一个点。if语句用来比较i和j的数字,如果他们不相等,电脑就在这两个点之间画一条线。如果i和j相等,说明是同一个点,那么就不用画线了。
for?(int?i?=?0;?i??numPoints;?i++)?{
????for?(int?j?=?0;?j??numPoints;?j++)?{
????????if?(?j?!=?i?)?{
????????????line(?pointsi.x,?pointsi.y,points[j].x,points[j].y?);????????
????????}
?????}
}
源码:
折叠展开Java 代码复制内容到剪贴板
int?numPoints?=?10;??
?PVector[]?points?=?new?PVector[numPoints];??
?float?radius?=150;??
void??setup()??
{??
??size(450,400);??
??
??float?angle?=?TWO_PI/numPoints;??
??for(int?i=0;inumPoints;i++)??
??{??
????float?x?=?cos(angle?*?i?)?*?radius;??
????float?y?=?sin(angle?*?i?)?*?radius;??
????points[i]?=?new?PVector(x,y);??
??}??
??noLoop();??
}??
??
void?draw()??
{??
???smooth();??
??
?PImage?img;??
img?=?loadImage(images/laDefense.jpg);??
background(img);??
?//??background(0);?//background(0,0,255);??
???
???//fill(0,0,255);??
??//?fill(255,102,255);??
???stroke(0,0,255,60);??
???translate(width/2,height/2);??
???for(int?i=0;inumPoints;i++){??
??????for(int?j=0;jnumPoints;j++)??
????????{??
??????????if(j!=i)?{??
???????????//??line(?pointsi.x,?pointsi.y,points[j].x,points[j].y?);??
?????????line(?points[i].x,?points[i].y,points[j].x,points[j].y?);?????
??????????}??
????????}??
???}??
saveFrame(images/circle-connection-+numPoints+.png);??
}??
成果:
processin
您可能关注的文档
- 计量经济工具箱分析.doc
- 计算机组成原理实验 2.3 比较器(仲裁器) 赖晓铮.ppt
- 让时间管理有序化.docx
- 第六章 现代自由式花艺设计.ppt
- 论中国与印度贸易发展特点、存在的问题及政策选择.doc
- 让图表说话(一)、.ppt
- 论偶数分解共轭素数.doc
- 论土家族摆手舞的审美特征.doc
- 论文数据结构课设居民小区光纤路线铺设最优方案.doc
- 论文高压直流输电合成场强计算方法及仿真研究.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)