xxxxxxxxxx
66
let angle = 0;
let amplitude = 50;
let frequency = 2;
let xPrev, yPrev;
let isDrawing = false;
let hasMoved = false;
function setup() {
createCanvas(4000, 4000);
// Create sliders
createP('Amplitude:');
let ampSlider = createSlider(0, 100, 50);
ampSlider.input(function() {
amplitude = ampSlider.value();
});
createP('Frequency:');
let freqSlider = createSlider(0, 10, 2, 0.1);
freqSlider.input(function() {
frequency = freqSlider.value();
});
// Set initial previous position
xPrev = width / 2;
yPrev = height / 2;
}
function draw() {
// Draw on canvas only when mouse is dragged
if (mouseIsPressed) {
if (!isDrawing && hasMoved) {
xPrev = mouseX;
yPrev = mouseY;
isDrawing = true;
}
if (!hasMoved && dist(mouseX, mouseY, pmouseX, pmouseY) > 1) {
hasMoved = true;
}
if (isDrawing) {
// Calculate the x-coordinate based on the angle, amplitude, and frequency
let x = mouseX + amplitude * sin(angle);
// Calculate the y-coordinate based on the angle, amplitude, and frequency
let y = mouseY + amplitude * cos(angle);
// Draw the line segment
stroke(0);
strokeWeight(5);
line(xPrev, yPrev, x, y);
// Update the previous position
xPrev = x;
yPrev = y;
}
} else {
isDrawing = false;
}
// Update the angle for next frame
angle += frequency * 0.1;
}