El comando noSmooth se encarga de irregularizar los bordes de las figuras, elipses, curvas,… que insertemos. Este comando es obligatorio insertarlo si queremos irregularizar los bordes, ya que el programa de forma predeterminada los crea regulares. Para insertarlo debemos escribir: noSmooth() .
Ahora probaremos un ejemplo:
size(100, 100);
noSmooth();
noStroke();
background(0);
ellipse(30, 48, 36, 36);
ellipse(70, 48, 36, 36);
Y observamos lo que ocurre:

Ahora, crearemos un código inventando basándonos en la estructura del anterior:
size(150, 150);
noSmooth();
noStroke();
background(0);
ellipse(100, 75, 45, 45);
ellipse(50, 75, 45, 45);
Y vemos qué hemos programado:

Ahora, procederemos a crear nosotros otro último código para este comando y observar qué ocurre:
void setup() {
size(200, 200);
noSmooth();
noStroke();
background(255);
}
void draw() {
fill(0, 255, 0);
ellipse(50, 100, 75, 75);
ellipse(150, 100, 75, 75);
}
Y observamos qué ocurre:

6.1.- Arc
Este comando es utilizado para introducir arcos, como su nombre indica. Para poder crear un arco debemos introducir un código siguiendo estos parámetros: arc(a, b, c, d, start, stop). Donde:
a: es el origen del arco en la coordenada x
b: es el origen del arco en la coordenada y
c: es la anchura del arco
d: es la altura del arco
start: es el ángulo con el que comienza el arco, especificado en radianes
stop: es el ángulo con el que finaliza el arco, especificado en radianes
Por tanto, sabiendo esto, podemos proceder a probar un ejemlo:
arc(50, 50, 80, 80, 0, PI+QUARTER_PI, OPEN);

Ahora, crearemos nosotros un código pero parecido al del ejemplo para ir asimilando este commando:
arc(50, 30, 94, 94, 0, PI+QUARTER_PI, OPEN);

Y ahora, un código algo más avanzado para comprobar si de verdad hemos aprendido a utilizar dicho comando:
void setup() {
size(250, 250);
noSmooth();
background(0, 255, 0);
}
void draw() {
fill(255, 0, 0);
noStroke();
arc(125, 125, 160, 160, 0, PI+QUARTER_PI, OPEN);
}
Y observamos qué ocurre:

7.5.-Curve
Con este comando podemos introducir curvas en nuestro programa. Para ello debemos introducir el código siguiendo estos parámetros: curve(x1, y1, x2, y2, x3, y3, x4, y4). Siendo:
x1: comienzo del punto de control de la curva en la coordenada x
y1: comienzo del punto de control de la curva en la coordenada y
x2: primer punto de la curva en la coordenada x
y2: primer punto de la curva en la coordenada y
x3: segundo punto de la curva en la coordenada x
y3: segundo punto de la curva en la coordenada y
x4: final del punto de control de la curva en la coordenada x
y4: final del punto de control de la curva en la coordenada y
Ahora, teniendo en cuenta esto, probaremos el ejemplo:
noFill();
stroke(255, 102, 0);
curve(5, 26, 5, 26, 73, 24, 73, 61);
stroke(0);
curve(5, 26, 73, 24, 73, 61, 15, 65);
stroke(255, 102, 0);
curve(73, 24, 73, 61, 15, 65, 15, 65);

Ahoora, crearemos un código siguiendo el ejemplo:
noFill();
stroke(255, 102, 0);
curve(10, 10, 30, 38, 80, 40, 40, 10);
stroke(0);
curve(50, 26, 80, 40, 73, 61, 15, 83);
stroke(255, 102, 0);
curve(50,50, 73, 61, 15, 65, 10, 10);

Y ahora, crearemos un código más complicado:
void setup() {
size(250, 250);
background(#FAFF00);
}
void draw() {
fill(#FAFF00);
stroke(255, 0, 0);
curve(125, 125, 0, 80, 230, 50, 200, 180);
stroke(0, 255, 0);
curve(200, 60, 230, 50, 215, 80, 180, 70);
stroke(255, 0, 0);
curve(160, 60, 215, 80, 50, 170, 45, 180);
}
Y vemos qué ha ocurrido:

9.4.-strokeJoin
Este comando nos permite elegir el tipo de conexión que tipo dos segmentos(redondeada, cortada o en forma de pico). Para comprenderlo mejor veremos el siguiente ejemplo donde:
-strokeWeight: es la anchura de la línea.
-strokeJoin es la dicha conexión y puede ser: MITER(en pico), BEVEL(cortada) o ROUND(redondeada).
-beginShape sirve para indicar al programa que vamos a introducir unos segmentos.
-vertex se usa para indicar las coordenadas de los vértices.
-endShape sirve para indicar al programa que hemos terminado de introducir segmentos.
Y HAY QUE INTRODUCIRLOS EN ESTE ORDEN. Ahora procedemos a probar el anterior mencionado ejemplo:
noFill();
strokeWeight(10.0);
strokeJoin(MITER);
beginShape();
vertex(35, 20);
vertex(65, 50);
vertex(35, 80);
endShape();

Ahora, crearemos un código inventado por nosotros para ver qué hemos aprendido:
noFill();
strokeWeight(15.0);
strokeJoin(BEVEL);
beginShape();
vertex(10,10);
vertex(80,20);
vertex(10,30);
endShape();
Y vemos qué ocurre:

Ahora, crearemos otro código algo más complejo:
void setup() {
size(250, 250);
noSmooth();
background(0, 255, 0);
fill(0, 250, 0);
}
void draw() {
stroke(#FF0000);
strokeWeight(20.5);
strokeJoin(ROUND);
beginShape();
vertex(5,5);
vertex(120,120);
vertex(5, 245);
endShape();
}
Y observamos el programa:

12.11.-pmouseX
Este comando nos permite insertar una línea que siga la ratón, pero solamente en el eje X, es decir, de manera horizontal. Por tanto, observamos el ejemplo:
void draw() {
background(204);
line(mouseX, 20, pmouseX, 80);
println(mouseX + " : " + pmouseX);
}
Ahora, procedemos a crear nosotros nuestro propio código:
void setup() {
size(250, 250);
}
void draw() {
background(255, 0, 0);
stroke(0, 255, 0);
line(mouseX, 80, pmouseX, 160);
println(mouseX + " : " + pmouseX);
}
Y vemos el programa:
Y ahora, vamos a tratar de crear un código aún más complejo y preciso:
void setup() {
size(300, 300);
}
void draw() {
background(#0700FF);
stroke(#EDFF00);
strokeWeight(20.5);
line(pmouseX, 120, pmouseX, 220);
println(mouseX + " : " + pmouseX);
}























