|
1 | 1 | /*
|
2 |
| - * @name Trig Wheels and Pie Chart |
| 2 | + * @name Ruedas trigonométricas y gráfico circular |
| 3 | + * @arialabel Dos círculos sobre un fondo blanco. Un círculo tiene rebanadas de diferentes colores. Un círculo consta de rectángulo en espiral dentro de la forma de un círculo en un gradiente de arco iris |
3 | 4 | * @frame 400,400
|
4 |
| - * @description contributed by <a href="https://www.rit.edu/directory/wmhics-w-michelle-harris"> |
5 |
| - <b>Prof WM Harris,</b></a> <b>How</b> to create |
6 |
| -a trig color wheel and a visualization of a population age data as a |
7 |
| -pie chart.<br/> |
8 |
| - Functions are |
9 |
| -created for the canvas setup, trig color wheel, drawslice, and pie |
10 |
| -chart. The size of the slices are determined as well as their color |
11 |
| -range. The pie chart is separated by definitive color per value |
12 |
| -whereas the trig color wheel has a fixed slice amount with a range |
13 |
| -color fill. |
| 5 | + * @description Contribuido por <a href="https://www.rit.edu/directory/wmhics-w-michelle-harris"> |
| 6 | + <b>Prof WM Harris,</b></a> <b>Cómo</b> crear una rueda trigonométrica de colores y una visualización de los datos de edad de una población como un gráfico circular.<br/> |
| 7 | + Las funciones son creadas |
| 8 | + para la configuración del lienzo, la rueda de colores trigonométrica, el sector del dibujo, y el gráfico circular. |
| 9 | + El tamaño de las rebanadas son determinadas así como su |
| 10 | + rango de color. El gráfico circular esta separado color definitivo por valor |
| 11 | + mientras que la rueda de colores trigonométrica tiene una cantidad fija de rebanadas con un relleno de |
| 12 | + color de rango. |
14 | 13 | */
|
15 | 14 |
|
16 | 15 | function setup() {
|
17 | 16 | createCanvas(400, 400);
|
18 | 17 | colorMode(HSB);
|
19 | 18 | angleMode(DEGREES);
|
20 | 19 |
|
21 |
| - //vars for color wheel center point |
| 20 | + //Variables para el punto central de la rueda de colores |
22 | 21 | let x = width / 2;
|
23 | 22 | let y = height / 2 + 100;
|
24 |
| - colorWheel(x, y, 100); //slide 11 |
| 23 | + colorWheel(x, y, 100); //diapositiva 11 |
25 | 24 |
|
26 | 25 | noStroke();
|
27 |
| - pieChartPop(200, 100); //slide 12 |
| 26 | + pieChartPop(200, 100); //diapositiva 12 |
28 | 27 | }
|
29 | 28 |
|
30 |
| -//**** slide 12 pie chart trig demo |
| 29 | +//**** diapositiva 12 demostración trigonométrica de gráfico circular |
31 | 30 | function pieChartPop(x, y) {
|
32 | 31 | let [total, child, young, adult, senior, elder] = [577, 103, 69,
|
33 | 32 | 122, 170, 113
|
34 | 33 | ];
|
35 | 34 | let startValue = 0;
|
36 | 35 | let range = 0;
|
37 | 36 |
|
38 |
| - //child slice |
| 37 | + //Rebanada de niño |
39 | 38 | range = child / total;
|
40 | 39 | drawSlice("blue", x, y, 200, startValue, startValue + range);
|
41 | 40 | startValue += range;
|
42 |
| - //young slice |
| 41 | + //Rebanada de joven |
43 | 42 | range = young / total;
|
44 | 43 | drawSlice("orange", x, y, 200, startValue, startValue + range);
|
45 | 44 | startValue += range;
|
46 |
| - //adult slice |
| 45 | + //Rebanada de adulto |
47 | 46 | range = adult / total;
|
48 | 47 | drawSlice("green", x, y, 200, startValue, startValue + range);
|
49 | 48 | startValue += range;
|
50 |
| - //senior slice |
| 49 | + //Rebanada de adulto mayor |
51 | 50 | range = senior / total;
|
52 | 51 | drawSlice("tan", x, y, 200, startValue, startValue + range);
|
53 | 52 | startValue += range;
|
54 |
| - //elder slice |
| 53 | + //Rebanada de anciano |
55 | 54 | range = elder / total;
|
56 | 55 | drawSlice("pink", x, y, 200, startValue, startValue + range);
|
57 | 56 | startValue += range;
|
58 | 57 |
|
59 | 58 | }
|
60 | 59 |
|
61 | 60 | /**
|
62 |
| - * drawSlice - draw colored arc based on angle percentages. slide 13 |
63 |
| - * Adjust angles so that 0% starts at top (actually -90). |
64 |
| - * @param {color} fColor - fill color |
65 |
| - * @param {number} x - center x |
66 |
| - * @param {number} y - center y |
67 |
| - * @param {number} d - diameter |
68 |
| - * @param {float} percent1 - starting percentage |
69 |
| - * @param {float} percent2 - ending percentage |
| 61 | + * drawSlice - dibuja un arco basado en los porcentajes de ángulos. Diapositiva 13 |
| 62 | + * Ajusta los ángulos para que el 0% empiece en la parte superior (de hecho, -90) |
| 63 | + * @param {color} fColor - color de relleno |
| 64 | + * @param {number} x - coordenada x del centro |
| 65 | + * @param {number} y - coordenada y del centro |
| 66 | + * @param {number} d - diámetro |
| 67 | + * @param {float} percent1 - porcentaje inicial |
| 68 | + * @param {float} percent2 - porcentaje final |
70 | 69 | */
|
71 | 70 | function drawSlice(fColor, x, y, d, percent1, percent2) {
|
72 | 71 | fill(fColor);
|
73 | 72 | arc(x, y, d, d, -90 + percent1 * 360, -90 + percent2 * 360);
|
74 | 73 | }
|
75 | 74 |
|
76 |
| -//**** slide 11 trig demo |
| 75 | +//**** diapositiva 11 demostración de trigonometría |
77 | 76 | function colorWheel(x, y, rad) {
|
78 | 77 | strokeWeight(10);
|
79 | 78 | strokeCap(SQUARE);
|
80 | 79 |
|
81 |
| - //Iterate 360 degrees of lines, +10deg per turn |
| 80 | + //Itera 360 grados de lineas, 10 grados por turno |
82 | 81 | for (let a = 0; a < 360; a += 10) {
|
83 |
| - stroke(a, 150, 200); //hue based on a |
84 |
| - //radius is 100, angle is a degrees |
| 82 | + stroke(a, 150, 200); //hue basado en un |
| 83 | + //radio es 100, ángulo es un grado |
85 | 84 | line(x, y, x + rad * cos(a),
|
86 | 85 | y + rad * sin(a));
|
87 | 86 | }
|
|
0 commit comments