How to get the coordinates of the points in Array?

function segments (points) {
  beginShape();
  for(let point of points)
    vertex(...point);
  endShape();
}

function drawCurve(f,a,b,n=200){
  segments([...Array(n+1).keys()].map(k => f(a +(b-a)*k/n)));
}

function draw() {
  k %= 1;
  background(240);
  translate(width / 2, height / 2);
  scale(scaleFactor, -scaleFactor)
  stroke(200);
  
  line(-mx,0,mx,0);
  line(0,-mx,0,mx);
  
  drawCurve(t=>[3*sin(2*t),2*cos(3*t)], 0, 2*k*PI);
  stroke(0);
  drawCurve(t=>[3*sin(2*t),2*cos(3*t)], max(0,2*k*PI-0.5), 2*k*PI);
  k += 0.01;

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

I’m not sure what you are asking. And your code is incomplete. But maybe take a step back and abstract the problem. Can you provide a sample array and explain what you want to extract from it?

I got the code from a tutorial. It draws a curve. I want to draw additional lines, that intersect the curve at the point currently drawn on the curve. For this I think I need the coordinates of that point. But I have no idea, how to get hold of them.
The Array “Points” contains them. But there seems to be nothing like Points[n].x or whatever gives me the x-coordinate of that point.

And what does points look like? Can you log that out and show us what is in it?

Or can you provide a link to a repo?

Hello and thanks for the quick answer.

the full program is this:

let scaleFactor = 1;

const mx = 5;

const r = 2;

let k = 0;

function setup()

{

createCanvas(500,500);

scaleFactor = width / mx /2;

strokeWeight(1 / scaleFactor);

noFill();

frameRate(20);

}

// points list eine Liste (Array) von Punkten

function segments (points)

{

beginShape();

for(let point of points)

vertex(...point);

endShape();

}

function drawCurve(f,a,b,n=200)

{

segments([...Array(n+1).keys()].map(k => f(a +(b-a)*k/n)));

}

function draw()

{

k %= 1;

background(240);

translate(width / 2, height / 2);

scale(scaleFactor, -scaleFactor)

stroke(200);

line(-mx,0,mx,0);

line(0,-mx,0,mx);

stroke(0);

//drawCurve(t=>[3*sin(2*t),2*cos(3*t)], 0, 2*k*PI);

The task is to draw a vertical and a horizontal line that go with points [3sin(2t),2cos(3t)] as the curve is drawn.

Best regards

Carsten

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

That cannot be the complete code. You have undefined functions and the last function is incomplete.

If you have working code, please put it in a github repo and provide the link. Then we can test the exact code with your setup.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.