Bedtime: ${bedtime} , Waketime: ${waketime}
Alarms before Waketime: ${alarm1} ${alarm2} ${alarm3} `; // Log the extracted bedtime console.log('Extracted bedtime:', bedtime); } function draw() { background(0); translate(width / 2, height / 2); stroke(255); noFill(); // Draw concentric circles for different hours for (let i = 1; i <= 12; i++) { let hour = i; let radius = map(hour, 1, 13, 100, width / 2 - 50); let fromColor = color(0, 0, 255); // Blue let toColor = color(255, 165, 0); // Orange let gradientColor = lerpColor(fromColor, toColor, map(radius, 100, width / 2 - 50, 0, 1)); stroke(gradientColor); ellipse(0, 0, radius * 2, radius * 2); } // Label the hours from 1 to 11 as AM for (let i = 1; i <= 11; i++) { let hour = i; let radius = map(hour, 1, 12, 100, width / 2 - 50); let fromColor = color(65, 105,255); // Blue let toColor = color(255, 165, 0); // Orange let gradientColor = lerpColor(fromColor, toColor, map(radius, 100, width / 2 - 50, 0, 1)); stroke(gradientColor); textAlign(CENTER, CENTER); textSize(12); let labelRadius = radius + (24 - (i * 1.5)); // Radius for labels let labelX = labelRadius * cos(-90); // X-coordinate for label let labelY = labelRadius * sin(-90); // Y-coordinate for label text(hour + " AM", labelX, labelY); } // Label 12 as PM let radius12 = map(12, 1, 13, 100, width / 2 - 50); textSize(12); textAlign(CENTER, CENTER); let labelRadius12 = radius12 + 26; // Radius for label let labelX12 = labelRadius12 * cos(-90); // X-coordinate for label let labelY12 = labelRadius12 * sin(-90); // Y-coordinate for label text("12 PM", labelX12, labelY12); let Color = color(255, 165, 0); let radius = map(13, 1, 13, 100, width / 2 - 50); stroke(Color); ellipse(0, 0, radius * 2, radius * 2); let angleIncrement = 360 / numDays; fill(255); stroke(255, 90); for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); // radial line line(0, 0, 0, (-height / 2 + 50)); let dateString = table.getString(i, 0).replace(/"/g, ' '); // text position let labelX = 0; let labelY = -height / 2 + 35; // date label text(dateString, labelX, labelY); pop(); } // for (let i = 1; i < numDays; i++) { // let angle = i * angleIncrement; // let bedtime = table.getString(i, 1); // let hours = timeToHoursFloat(bedtime); // // Calculate radius based on hours // let radius = map(hours * 20, 0, 24 * 20, 50, width / 2 - 50); // // Calculate Cartesian coordinates // let x = radius * cos(angle); // let y = radius * sin(angle); // fill(255); // ellipse(x, y, 5, 5); // } for (let i = 0; i < numDays; i++) { bedtimeString = table.getString(i,1); let hoursFloat = timeToHoursFloat(bedtimeString); console.log("Time String: " + bedtimeString + " Hours Float: " + hoursFloat); } // for (let i = 0; i < numDays; i++) { // wakeString = table.getString(i,1); // let hoursFloat = timeToHoursFloat(wakeString); // console.log("Time String: " + wakeString + " Hours Float: " + hoursFloat); // } function timeToHoursFloat(time) { // split the time string into hours, minutes, and seconds let [hours, minutes, seconds] = time.split(':').map(Number); // calculate the total time in hours let totalHours = hours + (minutes / 60) + (seconds / 3600); return totalHours; } fill(0); ellipse(0, 0, 200, 200); for (let i = 1; i < numDays; i++) { textSize(14); let angle = i * angleIncrement; push(); rotate(angle); stroke(255, 90); strokeWeight(15); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,1))*21); let endX = 0; let endY = -100 - ((timeToHoursFloat(table.getString(i,2)))*21); line(startX, startY, endX, endY); // radial line starting 100 units out pop(); } for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); fill(255); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,2))*21); ellipse(startX, startY, 10, 10); pop(); } for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); stroke(255); noFill(); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,1))*21); ellipse(startX, startY, 10, 10); pop(); } for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); fill(255, 0, 0); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,5))*21); ellipse(startX, startY, 5, 5); pop(); } for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); fill(255, 0, 0); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,4))*21); ellipse(startX, startY, 5, 5); pop(); } for (let i = 1; i < numDays; i++) { let angle = i * angleIncrement; push(); rotate(angle); fill(255, 0, 0); let startX = 0; let startY = -100 - (timeToHoursFloat(table.getString(i,3)*21)); ellipse(startX, startY, 5, 5); pop(); } } function redrawChart(data) { background(0); translate(width / 2, height / 2); stroke(255); noFill(); // Calculate the angle increment based on the number of data points let angleIncrement = 360 / data.length; // Adjust other parameters based on the length of data let radiusMax = min(width, height) / 2 - 50; let textSizeFactor = min(width, height) / 100; // Draw concentric circles for different hours for (let i = 1; i <= 12; i++) { let hour = i; let radius = map(hour, 1, 13, 100, radiusMax); let fromColor = color(0, 0, 255); // Blue let toColor = color(255, 165, 0); // Orange let gradientColor = lerpColor(fromColor, toColor, map(radius, 100, radiusMax, 0, 1)); stroke(gradientColor); ellipse(0, 0, radius * 2, radius * 2); } // Draw radial lines and labels for each data point for (let i = 0; i < data.length; i++) { let angle = i * angleIncrement; push(); rotate(angle); // Draw radial lines and labels... pop(); } // Draw points for bedtime and wake time for each data point for (let i = 0; i < data.length; i++) { let angle = i * angleIncrement; push(); rotate(angle); // Draw points... pop(); } // Draw additional elements as needed based on your data } class SleepDate{ constructor(Primary_Date, Bedtime, Wake_Time, Alarm1, Alarm2, Alarm3, Day){ // data properties this.date = Primary_Date; this.bedtime = Bedtime; this.wake = Wake_Time; this.alarm1 = Alarm1; this.alarm2 = Alarm2; this.alarm3 = Alarm3; this.date = Day; } }