xxxxxxxxxx
81
// P_1_1_2_01
//
// Generative Gestaltung – Creative Coding im Web
// ISBN: 978-3-87439-902-9, First Edition, Hermann Schmidt, Mainz, 2018
// Benedikt Groß, Hartmut Bohnacker, Julia Laub, Claudius Lazzeroni
// with contributions by Joey Lee and Niels Poldervaart
// Copyright 2018
//
// http://www.generative-gestaltung.de
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* changing the color circle by moving the mouse.
*
* MOUSE
* position x : saturation
* position y : brighness
*
* KEYS
* 1-5 : number of segments
* s : save png
*/
'use strict';
var segmentCount = 360;
var radius = 300;
function setup() {
createCanvas(800, 800);
noStroke();
}
function draw() {
colorMode(HSB, 360, width, height);
background(360, 0, height);
var angleStep = 360 / segmentCount;
beginShape(TRIANGLE_FAN);
vertex(width / 2, height / 2);
for (var angle = 0; angle <= 360; angle += angleStep) {
var vx = width / 2 + cos(radians(angle)) * radius;
var vy = height / 2 + sin(radians(angle)) * radius;
vertex(vx, vy);
fill(angle, mouseX, mouseY);
}
endShape();
}
function keyPressed() {
if (key == 's' || key == 'S') saveCanvas("anything", 'png');
switch (key) {
case '1':
segmentCount = 360;
break;
case '2':
segmentCount = 45;
break;
case '3':
segmentCount = 24;
break;
case '4':
segmentCount = 12;
break;
case '5':
segmentCount = 6;
break;
}
}