Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
void setup() {
size(300, 200);
background(255);
smooth();
stroke(0);
arc(35, 35, 50, 50, 0, PI / 2.0); // lower quarter circle
arc(105, 35, 50, 50, -PI, 0); // upper half of circle
arc(175, 35, 50, 50, -PI / 6, PI / 6); // 60 degrees
arc(105, 105, 100, 50, PI / 2, 3 * PI / 2); // 180
degrees
}
Los arcos están bien, pero son
simples. La siguiente función, curve
(), te permite dibujar curvas que no
son necesariamente parte de un arco.
Esta función dibuja lo que
técnicamente se llama un Spline Rom-
Catmull. Para dibujar la curva, debe
especificar las coordenadas (x, y)
de los puntos donde comienza y
termina la curva. También debe
especificar dos puntos de control
Curvas de spline que determinan la dirección y la
cantidad de curvatura. Una llamada a
curve () usa estos parámetros:
int[] coords = {
40, 40, 80, 60, 100, 100, 60, 120, 50, 150
};
void setup() {
size(200, 200);
background(255);
smooth();
noFill();
stroke(0);
beginShape();
curveVertex(40, 40); // the first control point
curveVertex(40, 40); // is also the start point of curve
curveVertex(80, 60);
curveVertex(100, 100);
curveVertex(60, 120);
curveVertex(50, 150); // the last point of curve
curveVertex(50, 150); // is also the last control point
endShape();
noFill();
stroke(255, 102, 0);
line(85, 20, 10, 10);
line(90, 90, 15, 80);
stroke(0, 0, 0);
bezier(85, 20, 10, 10, 90, 90, 15, 80);
noFill();
stroke(255, 102, 0);
line(30, 20, 80, 5);
line(80, 75, 30, 75);
stroke(0, 0, 0);
bezier(30, 20, 80, 5, 80, 75, 30, 75);
Syntax
bezier(x1, y1, x2, y2, x3, y3, x4, y4)
bezier(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)
Parametros
x1 float: coordenadas para el primer punto de anclaje
y1 float: coordenadas para el primer punto de anclaje
z1 float: coordenadas para el primer punto de anclaje
x2 float: coordenadas para el primer punto de control
y2 float: coordenadas para el primer punto de control
z2 float: coordenadas para el primer punto de control
x3 float: coordenadas para el segundo punto de control
y3 float: coordenadas para el segundo punto de control
z3 float: coordenadas para el segundo punto de control
x4 float: coordenadas para el segundo punto de anclaje
y4 float: coordenadas para el segundo punto de anclaje
z4 float: coordenadas para el segundo punto de anclaje
Aunque son mejores que los arcos,
las curvas spline no parecen tener
esas curvas elegantes y vertiginosas
que dicen "arte". Para esos, debe
dibujar curvas Bézier con la función
bezier (). Al igual que con las
curvas spline, la función bezier ()
Curvas Bézier tiene ocho parámetros, pero el orden
es diferente:
void setup() {
size(150, 150);
background(255);
smooth();
// Don't show where control points are
noFill();
stroke(0);
beginShape();
vertex(50, 75); // first point
bezierVertex(25, 25, 125, 25, 100, 75);
endShape();
}
Bezier
void setup() {
size(640, 360);
stroke(255);
noFill();
}
void draw() {
background(0);
for (int i = 0; i < 200; i += 20) {
bezier(mouseX-(i/2.0), 40+i, 410, 20, 440, 300, 240-
(i/16.0), 300+(i/8.0));
}
}