CodingTrain / CodingTrain/Suggestion-Box

slow array

Open
#282 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
570
Forks
85
PR merge metrics
No merged PRs in 30d

Description

Hey guys,

So I am writing a code that puts the values of the X and Y location of the mouse in array and then uses those values to draw a stroke (curve), but what happens is that after a few moments the program becomes really slow and the values aren't stored properly in the array anymore. I know this is because the array is becoming to big because is said for(...) { draw this curve} but is there anyone who could help me out on how I could solve this?

Thank you in advance, here is the `code;`

`// the two arrays that store the values of the position of the mouse
mouseposx = [];
mouseposy = [];

function setup() {
createCanvas(600, 600);

}

function draw() {
background(0);

//make var for array that puts all values in array
for (var i = mouseposx.length ; i >= 0; i--) {

//if the mouse is stopped do not put new values in array
if (mouseX !== pmouseX && mouseY !== pmouseY) {

//put values of the position of the mouse in the array
mouseposx.push(mouseX);
mouseposy.push(mouseY);

}

// draw the curve of where the mouse has been
noFill();
stroke(255);
curve(mouseposx[i], mouseposy[i], mouseposx[i + 1], mouseposy[i + 1], mouseposx[i + 2], mouseposy[i + 2], mouseposx[i + 3], mouseposy[i + 3] );

}

}`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the inline setup() and draw() example, especially the mouseposx and mouseposy arrays and the loop around curve(). Reproduce the slowdown while drawing, then determine what change prevents the arrays or drawing loop from growing without bound while preserving the mouse stroke.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.