this post was submitted on 01 May 2024
480 points (89.6% liked)

Funny: Home of the Haha

5661 readers
718 users here now

Welcome to /c/funny, a place for all your humorous and amusing content.

Looking for mods! Send an application to Stamets!

Our Rules:

  1. Keep it civil. We're all people here. Be respectful to one another.

  2. No sexism, racism, homophobia, transphobia or any other flavor of bigotry. I should not need to explain this one.

  3. Try not to repost anything posted within the past month. Beyond that, go for it. Not everyone is on every site all the time.


Other Communities:

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] FooBarrington 7 points 6 months ago* (last edited 6 months ago) (1 children)

Drawing a circle is actually pretty simple! Say we want to draw one with:

  • radius r=5
  • center C=(0,0)
  • 1000 points

The logic would be:

for (let i = 0; i < 1000; i++) {
    // full circle is made up of 2 * PI angles -> calculate current loop angle
    const angle = (2 * Math.PI) * (i / 1000)
    const x = r * Math.cos(angle)
    const y = r * Math.sin(angle)
    drawPixel(x, y)
}

The circle starts being drawn at (5, 0). As y approaches -5, x gets smaller until it hits 0. Then x approaches -5 and y approaches 0, and so on.

[–] Valmond 1 points 6 months ago (1 children)

That won't work well ;-) it will draw 1000 pixels whatever the circumference!

A good start though, for sure.

[–] FooBarrington 1 points 6 months ago

It's just meant to be a simple example. If someone says other tutorials quickly go over their head, it's not a good idea to introduce unnecessary concepts to start with.