担当:宮島衣瑛(みやじま きりえ)
p5.js はWebブラウザ上で動作するアート作品を作ることができるプログラミングツールです。JavaScript(ジャバスクリプト)と呼ばれるプログラミング言語でプログラムを書いていきます。
はじめての方でもかんたんにおもしろい作品をつくることができるので、チャレンジしてみましょう!
p5.js 公式サイト https://p5js.jp/
まずは https://editor.p5js.org/ にアクセスしましょう。
エディターにアクセスすると、すでにプログラムが書かれています。まずは画面左上の▶ボタンを押して、プログラムを実行してみましょう。
Learn More →
プログラムを実行すると、灰色の四角が書かれました。この灰色のスペースが、このプログラムの背景です。ここにいくつかの図形を描いていきましょう。
下のプログラムのように、6行目と7行目の間に次のプログラムを追加します。
//設定をするところ
function setup() {
createCanvas(400, 400);
}
//見た目を書くところ
function draw() {
background(220);
rect(200, 200, 100, 100);
}
円は ellipse
という命令を使って書きます。
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
ellipse(50, 50, 80, 80);
}
Learn More →
function setup(){
createCanvas(windowWidth, windowHeight);
background(0);
}
function draw(){
var circleX = 10;
var circleY = 10;
var opacity = 1;
for(var i=0; i<30; i++){
fill(255, 127, 255, 255);
ellipse(circleX, circleY, 100,100);
circleX += 20;
circleY += 20;
}
}
Learn More →
function setup(){
createCanvas(windowWidth, windowHeight);
background(0);
}
function draw(){
var circleSize = 700;
var opacity = 100;
var colorB = 0;
for(var i=0; i<10; i++){
noStroke();
fill(0, 0, colorB, 50);
ellipse(windowWidth/2, windowHeight/2, circleSize, circleSize);
circleSize -= 100;
colorB += 50;
}
}
Learn More →
function setup(){
createCanvas(500, 500);
background(0);
}
function draw(){
noLoop();
for(var i=0; i<100; i++){
fill(random(255),random(255),random(255));
rect(random(500), random(500), 50, 50)
}
}
Learn More →
function setup() {
createCanvas(500, 500);
}
function draw() {
noLoop();
background(0);
noStroke();
for(var i=0; i<100; i++){
fill(random(255),random(255),random(255));
var size = random(10, 100);
rect(random(500), random(500), size, size);
triangle(random(500), random(500), random(500), random(500), random(500), random(500));
ellipse(random(500), random(500), size);
}
}
function setup() {
createCanvas(400, 400);
}
function draw() {
background(#80BDQE);
translate(200, 200);
//rectMode(CENTER);
let loopNum = 10;
fill(255, 0, 255);
for(var i=0; i<loopNum; i++){
rect(0, 0, 100, 100);
rotate(radians(360/loopNum));
}
}
var loopNum = 3;
let timestamp = 0;
function setup() {
createCanvas(400, 400);
}
function draw() {
if(millis() - timestamp > 500){
timestamp = millis();
loopNum+=1;
background(220);
translate(200,200);
fill(0,102,102);
for(var i=0; i<loopNum; i++){
rect(0, 0, 100, 100);
rotate(radians(360/loopNum));
}
}
}
function setup() {
createCanvas(400, 400);
}
function draw() {
if(mouseIsPressed){
noFill(255);
}else{
fill(random(0, 255), random(0,255), random(0,255));
}
ellipse(mouseX, mouseY, 40, 40);
}
function keyTyped(){
if(key === "c"){
background(255);
}
}
let num = 50;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(51, 51, 102);
for(var j=0; j<num; j++){
for(var i=0; i<num; i++){
if(j%2 == 0){
if(i%2==0){
fill(0);
}else{
fill(51,153,0);
}
}else{
if(i%2==0){
fill(51,153,0);
}else{
fill(0);
}
}
rect(i*num, j*num, num, num);
}
}
}
function setup() {
createCanvas(500, 500);
}
function draw() {
background(50, 100, 255);
//rect(X座標, Y座標, たて, よこ)
//noStroke();
fill(231, 159, 109);
ellipse(width/2, height/2, 300, 300);
fill(255, 0, 0);
ellipse(width/4*1, height/2, 75, 75);
ellipse(width/2, height/2, 100, 100);
ellipse(width/4*3, height/2, 75, 75);
fill(0);
ellipse(width/5*2, height/3*1, 60, 60);
ellipse(width/5*3, height/3*1, 60, 60);
fill(137, 63, 72);
ellipse(width/2, height/6*4, 100, 50);
//strokeWeight(10);
line(100, 100, 200, 100);
}
let particles = [];
function setup() {
createCanvas(windowWidth, windowHeight);
}
function draw() {
background(0);
// パーティクルを更新して描画します
for (let i = 0; i < particles.length; i++) {
particles[i].update();
particles[i].display();
}
// パーティクルの数を制限します
while (particles.length > 100) {
particles.shift();
}
}
function mouseMoved() {
// マウスの位置に新しいパーティクルを作成します
let particle = new Particle(mouseX, mouseY);
particles.push(particle);
}
// パーティクルクラス
class Particle {
constructor(x, y) {
this.position = createVector(x, y);
this.velocity = createVector(random(-1, 1), random(-1, 1));
this.acceleration = createVector(0, 0);
this.color = color(random(255), random(255), random(255));
this.size = random(5, 20);
}
update() {
this.velocity.add(this.acceleration);
this.position.add(this.velocity);
this.acceleration.mult(0);
}
display() {
fill(this.color);
noStroke();
ellipse(this.position.x, this.position.y, this.size);
}
}
メモ コンピュータもワークショップも結局は同じ。方法論。思考誘引生。 おもわずやってみたくなるようなこと。楽しくて、やってみたくなるような環境はどのように作られているのか。 学習というものをどう捉えるのか、が鍵になっている。 宮島のD論とどう関係しているのか?≒ニアリーイコールではあるが、完全に一致してはいない。 2030年の学習指導要領に向けたロビイングなども含めた活動をみんなのコードはやっている。 その広める活動のお手伝い 研究そのものへのコメント
Apr 4, 2023オープニング(子どもの発表) ダンスや科学実験発表など、こどもたちのやりたいことをのびのびと表現している。 「○○チャレンジ」という活動。 校長挨拶 研究開発校の指定は8年目。1度延長。今年が最後。 全体研究構想(研究部長 井出先生) 学校で楽しいと感じるときはどんなときか?健康の学習で体を動かす 先生が優しい
Feb 24, 20232023/02/05 13:45- 清水康敬(東工大名誉教授) 情報活用能力の定義づけの経緯と見直しの必要性 1986年4月 臨教審第二次答申 情報活用能力の原点情報活用能力という新たな資質の育成の必要性を低減 1990年7月 「情報教育に関する手引」 情報教育の内容が4点示された(1) 情報の判断、選択、整理、処理能力及び新たな情報の創造、伝達能力 (2) 情報化社会の特質、情報化の社会や人間に対する影響の理解
Feb 6, 2023最終更新日:2021/11/24 2:58 作成者: @kiriem_ はじめに このテキストは、「Vue.jsでクイズアプリを作る」を終わらせていることを前提に作られています。JavaScript や HTML, CSSの基本が書かれていますので、必ず先にそちらを終わらせてから、こちらのテキストに入ってください。 解説動画 今回の範囲を解説する動画を作っています。こちらを観ながら取り組んでください。 1. つくりたいもの
Dec 14, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up