Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Processing雁群实验(续)

Processing雁群实验(续)

作者头像
一石匠人
发布于 2018-11-07 06:40:15
发布于 2018-11-07 06:40:15
61100
代码可运行
举报
文章被收录于专栏:儿童编程儿童编程
运行总次数:0
代码可运行

本文在前一篇《Processing雁群实验》进行延伸扩展,进行“实验性”探索。

本案例要点:

(1)旋转复杂不规则图形;

(2)运用二维数组定义图形;

(3)鼠标左右移动控制物体沿 Y 轴旋转;

(4)点击鼠标线条变色。

效果图如下:

复杂图形3D旋转演示.gif

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int [][]myArray;
//define angle of rotation
float angle_1; 
void setup() {
  size(500, 500, P3D);
  smooth();
  //Define two dimensional array 
  myArray=new int[200][3];
  for (int i=0; i<100; i++) {
    for (int j=0; j<3; j++) {
      myArray[i][j]=int(random(-100, 100));
    }
  }
}
void draw() {
  background(200);
  translate(width/2, height/2, 0);
  rotateY(radians(angle_1));
  noFill();
  //draw the shape to rotate
  box(200);
  beginShape();
  for (int i=0; i<myArray.length; i++)
  {
    vertex(myArray[i][0], myArray[i][1], myArray[i][2]);
  }
  endShape();
}

void mousePressed() {
  stroke(random(255),random(255),random(255));
}
void mouseMoved() {
  angle_1=map(mouseX, -width/2, width/2, 0, 360);
}

注意:

因为要是一个固定的图形进行旋转,不同于上一篇《Processing雁群实验》中的变动图形,这要求3D位点坐标要在setup()函数中提前赋值。如果在draw()中赋值则每次循环都重新随机画图,不符合本例要求。

拓展1:用坐标点画规则图形

规则图形可以在3D坐标中定义坐标点,如上例中的坐标点由随机变为规则,变化的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int [][]myArray={
{0,0,0},
{200,0,0},
{200,0,200},
{0,0,200},
{0,0,0},
{0,100,0},
{100,200,0},
{200,200,0},
{200,0,0},
{200,0,200},
{200,200,200},
{200,0,200},
{200,0,0},
{200,200,0},
{100,200,0},//
{0,200,100},
{0,100,0},
{0,200,100},
{0,200,200},
{0,0,200},
{0,200,200},
{200,200,200},
{200,200,0},
};

动态效果如图:

规则图形3D旋转演示

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.10.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
嵌入式Linux开发-uboot常用命令介绍(下篇)
主要是涉及的命令是:磁盘分区、磁盘文件加载、内核引导、二进制文件加载、跳转命令、磁盘文件系统格式等等。
DS小龙哥
2022/04/08
2.7K0
嵌入式Linux开发-uboot常用命令介绍(下篇)
i.MX6ULL嵌入式Linux开发1——uboot移植初探
本系列教程以「i.MX6ULL」处理器的ARM开发板为实验基础,学习记录嵌入式Linux开发的各种知识与经验,主要内容包括嵌入式Linux移植,嵌入式Linux驱动开发,嵌入式Linux应用开发等。
xxpcb
2021/07/20
2.6K0
嵌入式Linux开发-根文件系统本地挂载
上篇文章介绍了根文件系统的制作与NFS网络挂载,这篇文章介绍内核如何从本地挂载根文件系统,完成系统启动。本地挂载一般用在产品发布的时候,本地挂载的操作也分为两种。
DS小龙哥
2022/04/08
4.8K0
嵌入式Linux开发-根文件系统本地挂载
嵌入式Linux开发-根文件系统NFS网络挂载
根文件系统是Linux内核启动之后挂载的第一个文件系统,上篇文章里已经介绍过,如何使用busybox来制作根文件系统。这篇文章介绍根文件系统制作成功后,如何让内核找到文件系统,并完成挂载,进入到系统命令行终端。
DS小龙哥
2022/04/08
4.3K0
嵌入式Linux开发-根文件系统NFS网络挂载
史上最全的Uboot常用命令汇总(超全面!超详细!)收藏这一篇就够了「建议收藏」
进入 uboot 的命令行模式以后输入“help”或者“?”,然后按下回车即可查看当前 uboot 所支持的命令,如下图所示:
全栈程序员站长
2022/09/10
15.5K0
史上最全的Uboot常用命令汇总(超全面!超详细!)收藏这一篇就够了「建议收藏」
【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
烧写内容 : BootLoader, Linux Kernel, File System;
韩曙亮
2023/03/27
3K0
【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
嵌入式Linux开发-编写自定义uboot命令
U-Boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构。
DS小龙哥
2022/04/08
1.6K0
嵌入式Linux开发-编写自定义uboot命令
树莓派4 嵌入式Linux开发过程详解
在这篇文章中,将会通过树莓派4的Linux的启动过程,描述如何进行嵌入式Linux系统开发的思路。通过树莓派4B的启动流程,看到一个Linux启动过程,同时,通过一步一步搭建一个完整的树莓派嵌入式Linux开发环境,来指导分析各部分的开发过程。
bigmagic
2021/03/25
8.2K1
一.linux开发之uboot移植(一)——初识uboot
参考博文: http://blog.51cto.com/9291927/1791237
全栈程序员站长
2022/09/14
2K0
一.linux开发之uboot移植(一)——初识uboot
Rockchip RK3588 - uboot引导方式介绍
开发板 :RK3588 EVB开发板 eMMC :256GB LPDDR4 :16GB 显示屏 :10.1英寸HDMI接口显示屏 u-boot :2017.09 linux :6.1
用户11537198
2025/03/07
3780
[ 物联网篇 ] 11 - NXP i.MX8M Mini 集成Mender OTA解决方案
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程序手艺人
2019/11/14
1.8K0
Linux驱动开发: 块设备驱动开发
块是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。 块设备是与字符设备并列的概念, 这两类设备在 Linux 中驱动的结构有较大差异,总体而言, 块设备驱动比字符设备驱动要复杂得多,在 I/O 操作上表现出极大的不同,缓冲、 I/O 调度、请求队列等都是与块设备驱动相关的概念。
DS小龙哥
2022/01/17
33.3K0
Linux驱动开发: 块设备驱动开发
Uboot学习(四)之Uboot命令和ping命令实战
周末晚上好,今天继续给大家分享学习Uboot的文章。由于上班时间大部分是在写应用代码:web和c++的代码(web和c++,其实我没学多少,之前我只写几篇C++的文章,工作完全是被逼无奈。),平时只是调试一下硬件,在自己的印象里有好久没有玩开发板了,这不为了过瘾,一边学习的同时,又能够玩开发板,本次学习分享硬件平台是三星的s5pv210,这个开发板去年买来学习的,已经放了好久,在吃灰了,有好多板子都被我放在那里吃灰了,现在可能是由于没有玩了,像一只饥饥饿的材狼一样,好想玩;之前的文章里面也有介绍,自己之前在毕业之前系统学过一段时间的pcb,现在这个技能也好久没用了,手也是非常痒,hh ,那天有时间也来画画板玩。总之,一句话,把板子玩起来,不要吃灰!
用户6280468
2022/03/21
1.3K0
Uboot学习(四)之Uboot命令和ping命令实战
i.MX6ULL嵌入式Linux开发3-Kernel移植
NXP 会从linux内核官网下载某个版本,然后将其移植到自己的 CPU上,测试成功后就会将其开放给NXP的CPU开发者。开发者下载 NXP 提供的 Linux 内核,然后将其移植到自己的产品上。
xxpcb
2021/08/13
1.6K0
uboot中的mmc命令
mmc part – lists available partition oncurrent mmc device
全栈程序员站长
2022/07/12
1.4K0
U-boot常用命令汇总
我们经常使用uboot命令,虽然资料光盘->常见问题目录有U-boot常用命令汇总文档,但从大家的反馈来看,并没有很多人注意到这个文档,所以把它挪到这里。如此全的uboot命令汇总,建议收藏。
韦东山
2020/09/30
9580
【分享】MPSoC UBoot下SD/eMMC卡的验证
使用eMMC启动时,可以参考Xilinx的AR 67157烧写,也可以直接使用Vitis烧写。Vitis 2020.2 可以直接烧写eMMC设备。 烧写完成后,最好通过JTAG启动到U-Boot,在U-Boot里验证SD/eMMC的分区表、文件系统、启动文件正常。
hankfu
2020/12/17
2.5K0
全志H3 | 移植主线最新uboot 2023.04和kernel 6.1.11到Nanopi NEO开发板
编译器下载地址:Downloads | GNU-A Downloads – Arm Developer[1]
Mculover666
2023/08/18
2.3K0
全志H3 | 移植主线最新uboot 2023.04和kernel 6.1.11到Nanopi NEO开发板
i.MX6ULL嵌入式Linux开发4-根文件系统构建
前面几篇介绍了uboot的移植与内核的移植,本篇进行根文件系统的构建,这是Linux移植三大组成部分的最后一步,根文件系统构建好后,就构成了一个基础的、可以运行的嵌入式Linux最小系统。
xxpcb
2021/08/13
1.2K0
android的系统存储与软件安装
将一张新的SD卡装入USB读卡器插入装有linux操作系统的PC(以下为VMware安装了ubuntu 9.10的操作记录),打开一个终端窗口,操作如下所述(注:红色字体为输入信息
用户4148957
2022/06/14
1.8K0
推荐阅读
相关推荐
嵌入式Linux开发-uboot常用命令介绍(下篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验