我的战队
【分享帖】在安卓手机上运行Processing程序的方法的代码
由于帖子“在安卓手机上运行Processing程序的方法”太长,论坛发帖有字数要求所以,我把程序在这张帖子里公布。
在安卓手机上运行Processing程序的方法网址:https://bbs.robomaster.com/article/72
Processing程序:
float add_val;//定义螺旋线半径增加值
float mouseX_keep;//定义变量,用于保存鼠标当前X
//画螺旋线子程序
void Helix(float add_val){
float radius = 1.0;//螺旋线初始点半径
//螺旋线转动角度范围0360*8
//螺旋线每转动2度,半径就增加一个增量
//通过for结构,产生螺旋线效果
for(int deg = 0; deg < 360*8; deg += 2) {
float angle = radians(deg);
float x = 200 + (cos(angle) * radius);
float y = 350 + (sin(angle) * radius);
//螺旋线上每个点都是一个绿色实心圆
fill(0,255,0);//定义螺旋线的填充色为绿色
ellipse(x, y, 6, 6);
//螺旋半径每转动2度增加一次
radius = radius +add_val;
}
}
//初始化
void setup()
{
//定义画布大小
size(400,750); //绘制一个宽度为600像素,高度为750像素的画布
noStroke();//不绘制图形的轮廓线
smooth();//开启抗锯齿功能,使线条轮廓光滑
mouseX_keep=20;//设置鼠标光标位于水平标尺的初始位置
add_val=0.04; //当螺旋线旋转中心旋转角度不断增加时,
//螺旋线上的各点距离旋转中心的半径增加值
}
//主程序
void draw(){
background(126);//设置画布背景灰度等级,数值范围0~255,数值越小越黑
//在画布的下方水平画一个狭长的矩形,并填充黑色,以形成一条粗线
//这个粗线就是滚动条的水平标尺
rect(20,695,360,10);
fill(0);
//如果鼠标左键按下
if(mousePressed)
{
//如果鼠标光标相对于画布左上角原点的X坐标值在20580之间
if(mouseX>20 && mouseX<380)
{
//坐标平移的影响范围在pushMatrix() popMatrix()之间的语句
pushMatrix();
//将原点从画布的左上角移动到X坐标为mouseXY坐标为700
translate(mouseX,700);
ellipse(0,0,33,33);//以新坐标原点画直径为33的圆
fill(255);//圆内填充为白色
//白色圆的位置只受鼠标X坐标值的影响,而它的Y坐标值始终为700
//这个白色的圆就是水平标尺上的滑块,
//白色的圆只能约束在水平标尺上,随鼠标X值的变化而移动
popMatrix();//恢复坐标原点到画布的左上角
//把区间在20580mouseX当前值正比换算为区间0.040.2的值
//这个算式的执行,可以使鼠标X当前值成正比地影响螺旋线半径增加值
add_val = map(mouseX, 20, 480, 0.04, 0.16);
Helix(add_val); //调用画螺旋线子程序
}
//当鼠标当前X值小于等于水平标尺左端点的X值时,白色会固定在其左端点
//同时螺旋线半径增加值最小
else if(mouseX<=20)
{
fill(255);
ellipse(20,700,33,33);
Helix( 0.04);
}
//当鼠标当前X值大于等于水平标尺右端点的X值时,白色会固定在其右端点
//同时螺旋线半径增加值最大
else if(mouseX>=380)
{
fill(255);
ellipse(380,700,33,33);
Helix( 0.16);
}
mouseX_keep=mouseX;
}
//当鼠标左键松开时,螺旋线的形状不变
else
{
fill(255);
ellipse(mouseX_keep,700,33,33);
Helix( add_val);
}
}

请问这篇文章对你有用吗?
【分享帖】在安卓手机上运行Processing程序的方法的代码
所有评论
暂无更多
关于作者
三大张
三大张
0 关注Ta
0 文章
0 经验值
0 获赞