/* Processing/java PEmbroider file for making reindeers Utilize drawReindeer{1-6}() to draw the shapes Authors: Sam Laney, GPT-4 Link to ChatGPT conversation: https://chat.openai.com/share/33c5f807-18bd-474a-bc7c-7bf35155d6fe MIT HTMAA 2023 */ import processing.embroider.*; PEmbroiderGraphics E; void setup() { size(600, 750); E = new PEmbroiderGraphics(this, width, height); E.beginDraw(); E.clear(); // Define the appearance of the stitches E.strokeWeight(3); E.strokeSpacing(2); E.setStitch(10, 50, 0); // Drawing the reindeer drawReindeer6(); // Finalizing the embroidery design E.optimize(); E.visualize(true, false, true); String outputFilePath = sketchPath("Reindeer_PEmbroider.pes"); E.setPath(outputFilePath); // Uncomment the following line to export the design E.endDraw(); } void draw() { // Optional: Add animated progress if desired } void drawReindeer6() { float cx = width / 2; float cy = height / 2; // Drawing the body E.fill(0, 0, 0); E.ellipse(cx, cy, 300, 150); // Body // Drawing the head with more detail E.ellipse(cx + 150, cy - 30, 120, 90); // Head // Adding detailed antlers drawAntlers2(cx + 150, cy - 60); // Drawing an eye E.ellipse(cx + 170, cy - 30, 10, 10); // Eye // Drawing a detailed nose E.fill(255, 0, 0); E.ellipse(cx + 190, cy - 20, 15, 10); // Nose // Drawing detailed legs drawLeg2(cx - 50, cy + 75); // Front left leg drawLeg2(cx + 50, cy + 75); // Front right leg drawLeg2(cx - 100, cy + 75); // Back left leg drawLeg2(cx + 100, cy + 75); // Back right leg // Drawing the tail with more detail E.line(cx - 150, cy, cx - 180, cy - 20); // Tail } void drawAntlers2(float x, float y) { // Drawing detailed antlers E.line(x, y, x + 40, y - 40); E.line(x + 40, y - 40, x + 60, y - 10); E.line(x + 40, y - 40, x + 50, y - 60); E.line(x + 50, y - 60, x + 70, y - 30); // Add more branching for a realistic look } void drawLeg2(float x, float y) { // Drawing detailed legs with hooves and knee joints E.rect(x, y, 20, 70); // Upper part of the leg E.rect(x, y + 70, 20, 30); // Lower part of the leg E.ellipse(x + 10, y + 70, 25, 20); // Knee joint E.rect(x, y + 100, 30, 20); // Hoof } void drawReindeer5() { float cx = width / 2; float cy = height / 2; // Drawing the body E.fill(0, 0, 0); E.ellipse(cx, cy, 300, 150); // Body // Drawing the head with more detail E.ellipse(cx + 150, cy - 30, 120, 90); // Head // Adding detailed antlers drawAntlers(cx + 150, cy - 60); // Drawing an eye E.ellipse(cx + 170, cy - 30, 10, 10); // Eye // Drawing a detailed nose E.fill(255, 0, 0); E.ellipse(cx + 190, cy - 20, 15, 10); // Nose // Drawing detailed legs drawLeg(cx - 50, cy + 75); // Front left leg drawLeg(cx + 50, cy + 75); // Front right leg drawLeg(cx - 100, cy + 75); // Back left leg drawLeg(cx + 100, cy + 75); // Back right leg // Drawing the tail with more detail E.line(cx - 150, cy, cx - 180, cy - 20); // Tail } void drawAntlers(float x, float y) { // Drawing more detailed antlers E.line(x, y, x + 40, y - 40); E.line(x + 40, y - 40, x + 60, y - 10); // Add more lines to create detailed branching antlers } void drawLeg(float x, float y) { // Drawing more detailed legs E.rect(x, y, 20, 100); // Upper part of the leg E.rect(x, y + 100, 30, 20); // Lower part of the leg (hoof) // Add more lines or shapes for muscle definition or fur texture } void drawReindeer4() { float cx = width / 2; float cy = height / 2; // Drawing the body E.fill(0, 0, 0); E.ellipse(cx, cy, 300, 200); // Larger ellipse for body // Drawing the head E.ellipse(cx + 150, cy - 50, 100, 100); // Head positioned to the right of the body // Drawing antlers E.line(cx + 150, cy - 100, cx + 200, cy - 150); // Upper antler E.line(cx + 150, cy - 100, cx + 200, cy - 50); // Lower antler // Drawing eye E.ellipse(cx + 170, cy - 50, 10, 10); // Single eye // Drawing nose E.fill(255, 0, 0); E.ellipse(cx + 190, cy - 40, 15, 10); // Red nose // Drawing legs E.rect(cx - 50, cy + 100, 20, 80); // Left front leg E.rect(cx + 30, cy + 100, 20, 80); // Right front leg E.rect(cx - 50, cy + 100, 20, 80); // Left back leg E.rect(cx + 30, cy + 100, 20, 80); // Right back leg // Drawing the tail E.line(cx - 150, cy, cx - 180, cy - 30); // Tail extending from the left side of the body } void drawReindeer3() { float cx = width / 2; float cy = height / 2; // Drawing the head E.fill(0, 0, 0); E.ellipse(cx, cy - 100, 150, 200); // Adjusted to position the head // Drawing antlers E.line(cx - 50, cy - 200, cx - 100, cy - 300); // Left antler top E.line(cx - 50, cy - 200, cx - 30, cy - 300); // Left antler bottom E.line(cx + 50, cy - 200, cx + 100, cy - 300); // Right antler top E.line(cx + 50, cy - 200, cx + 30, cy - 300); // Right antler bottom // Drawing eyes E.ellipse(cx - 30, cy - 120, 20, 30); // Left eye E.ellipse(cx + 30, cy - 120, 20, 30); // Right eye // Drawing nose E.fill(255, 0, 0); E.ellipse(cx, cy - 50, 30, 20); // Red nose // Drawing the body E.fill(0, 0, 0); E.ellipse(cx, cy + 150, 200, 300); // Body // Drawing legs E.rect(cx - 100, cy + 250, 30, 100); // Left front leg E.rect(cx + 70, cy + 250, 30, 100); // Right front leg E.rect(cx - 100, cy + 350, 30, 100); // Left back leg E.rect(cx + 70, cy + 350, 30, 100); // Right back leg // Drawing the tail E.line(cx + 100, cy + 250, cx + 150, cy + 200); // Tail } void drawReindeer2() { float cx = width / 2; float cy = height / 2; // Drawing the head E.fill(0, 0, 0); E.ellipse(cx, cy, 150, 200); // Adjust size as needed // Drawing antlers E.line(cx - 50, cy - 100, cx - 100, cy - 200); // Left antler top E.line(cx - 50, cy - 100, cx - 30, cy - 200); // Left antler bottom E.line(cx + 50, cy - 100, cx + 100, cy - 200); // Right antler top E.line(cx + 50, cy - 100, cx + 30, cy - 200); // Right antler bottom // Drawing eyes E.ellipse(cx - 30, cy - 20, 20, 30); // Left eye E.ellipse(cx + 30, cy - 20, 20, 30); // Right eye // Drawing nose E.fill(255, 0, 0); E.ellipse(cx, cy + 50, 30, 20); // Red nose } void drawReindeer1() { // Example: Drawing a simple reindeer head // You'll need to add the actual drawing code here float cx = width / 2; float cy = height / 2; // Drawing the head E.ellipse(cx, cy, 200, 300); // Drawing antlers // Add the lines or shapes to represent antlers // Drawing eyes and nose // Add ellipses or circles for eyes and nose // Add any additional details for the reindeer }