Coding Challenge 185: Unfolding Fractals

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ต.ค. 2024

ความคิดเห็น • 86

  • @TheCodingTrain
    @TheCodingTrain  2 หลายเดือนก่อน +17

    25% off Nature of Code with code CHOOCHOO: natureofcode.com (also includes exclusive sticker+bookmark!)

    • @vu_derArchitekt
      @vu_derArchitekt 2 หลายเดือนก่อน

      🎉 I pre order the book in July (to Vietnam), waiting for your beautiful sticker and bookmark 😊

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน

      @@vu_derArchitektthank you for the support!

    • @unveil7762
      @unveil7762 2 หลายเดือนก่อน

      Ah finally I clicked!! But i forgot to apply discount LOL!! I always wanted to have that book, was so hyped !! THANKS!!!!!!!!!!!!each time i see one of your video ,i want to write a shader or do some procedural modelling 🙂

    • @farazk9729
      @farazk9729 หลายเดือนก่อน

      Maestro, I just preordered Nature of Code (love the color of the book BTW); I will get it on Dec 10 (I am based in Australia). In the meantime, would you recommend going through the old book? The one with Processing... I have read parts of it, but not the entire book. Would you recommend that or do you think the old book is no longer relevant? Thanks,

    • @TheCodingTrain
      @TheCodingTrain  หลายเดือนก่อน

      @@farazk9729 You could still read it yes, however, I'd recommend just reading the new one on the website until the physical book arrives! natureofcode.com/

  • @frollard
    @frollard 2 หลายเดือนก่อน +26

    A friend of mine and I coded a version of this for the TI-83 calculator back in high school (holy crap more than 25 years ago)...his version was an insane recursive algorithm because of the memory limitations of the calculator - couldn't write a long list of the segments and do a simple transformation on it to double up and make the next segment. His algorithm actually drew the curve one line at a time...and determined the orientation of each arbitrary line segment up, down, left, or right - as the n'th line of the i'th iteration. That way, he could just draw that one line, then the next, then the next. One of the harder parts was scaling the screen coordinates so that line segments were integer multiples of the number of pixels available to prevent weird moire/aliasing patterns emerging.

  • @Manticore_007
    @Manticore_007 2 หลายเดือนก่อน +11

    The added visuals for explaining the code on-the-fly is an awesome addition! I love it

  • @felizdiacaro
    @felizdiacaro 2 หลายเดือนก่อน +6

    I found your channel a few days ago and since then every time i have an idea and mention it to someone, a video of you doing it is recommended to me by youtube. that's kinda cool. i ordered the book and i look forward to trying out all this stuff. Thank you!

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน

      Thank you for the support and kind words!

  • @MrQuickLine
    @MrQuickLine 2 หลายเดือนก่อน +65

    To get the last element, you can do Array.at(-1)

    • @69zwaan
      @69zwaan 2 หลายเดือนก่อน +1

      Yes, last segement. Length

    • @stio_studio
      @stio_studio 2 หลายเดือนก่อน

      Ok, why have no one told me this before? Thanks for the best trick ever!

    • @MrQuickLine
      @MrQuickLine 2 หลายเดือนก่อน

      @@69zwaan but splice creates a new array, where as .at just references the existing one

    • @4120_PRATIKRATHOD
      @4120_PRATIKRATHOD 2 หลายเดือนก่อน

      pop() ! 😂

    • @captainexpo4925
      @captainexpo4925 2 หลายเดือนก่อน +3

      @user-sy4sf8gq4p pop() removes the last element as well as returning it.

  • @cipherhex
    @cipherhex 2 หลายเดือนก่อน +39

    If Dan doesn't lose his mind at least once, the Coding Challenge isnt worth watching! 😂
    Love it as always!

    • @Ctrl-Z-Renders
      @Ctrl-Z-Renders 2 หลายเดือนก่อน

      The coding challange is ALWAYS worth watchig!

  • @markuszeller_official
    @markuszeller_official 2 หลายเดือนก่อน +14

    Hey Dan. Your book arrived. I LOVE IT.

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      Yay!! Thank you for the support!

  • @PatrickHoodDaniel
    @PatrickHoodDaniel 2 หลายเดือนก่อน +3

    This is a good visual example of compounding.

  • @thelavagod
    @thelavagod หลายเดือนก่อน +1

    Why does this guy never get old? Literally the only thing that changed (AFAIK) is the color of his hair. His style of videos is still the same as it was 8-9 years back.

  • @kerrykreiter445
    @kerrykreiter445 2 หลายเดือนก่อน +3

    That was a fun one to watch!!

  • @roballegar
    @roballegar 18 วันที่ผ่านมา

    This is great. I thought for sure you'd be using matrix multiplication to handle the rotation, but your way is clean and easy to understand too.

  • @orugma
    @orugma หลายเดือนก่อน +1

    I'd love to see more videos like the Apple ][ Coding Challenges. They were a refreshing change of pace. Or the ones where you worked in the shed.

  • @RupertBruce
    @RupertBruce 2 หลายเดือนก่อน +3

    I would have thought that treating each line as a unit and the rotation as simple arithmetic of the number of units in each direction on the path, the problem becomes way easier to compute... Simple turtle movement!

  • @onebeartoe
    @onebeartoe 2 หลายเดือนก่อน +1

    I love you Dan. "Except for the very first time"!!!!!!

  • @findjonmoses
    @findjonmoses 2 หลายเดือนก่อน +1

    Dirtywave M8 is my dessert island instrument…get the MK2. It has a microphone and a bigger battery and a bigger screen. So worth it

  • @r4co351
    @r4co351 2 หลายเดือนก่อน

    Yet another astonishing intro... Keep up the great work!

  • @Smoth48
    @Smoth48 หลายเดือนก่อน

    I am so glad I found this video!! I literally have the dragon curve tattooed on me :D And I drew *lots* of Hilbert curves in school haha

  • @aparrot4254
    @aparrot4254 2 หลายเดือนก่อน

    Really cool video. Your way of reasoning and debugging seems smart. Talking out loud and kind of explaining the code. Reminds me of rubber duck debugging.

  • @corey333p
    @corey333p 3 วันที่ผ่านมา

    The math may not be as simple as you make it seem if you're on some platform that doesn't have a rotate function. For me it was a bit of a thinker to figure out how to apply the rotations. I came up with complex numbers.
    Format each point being rotated as a complex number, subtract out the point of rotation to transform the point of rotation to the origin, multiply the result by 0+1i to apply the 90 degree rotation, and reapply the transformation from 0,0 to the point of rotation.

  • @HarDarkable
    @HarDarkable 2 หลายเดือนก่อน +3

    This dot!

  • @rotten-Z
    @rotten-Z 2 หลายเดือนก่อน

    This problem can be solved by constructing an array of integers. The value of an array element is the direction of the "turtle" movement. 0-up, 1-right, 2-down, 3-left. At the first step, the array consists of one element, at each subsequent step, the length of the array increases by two times. The added part of the array is filled with values ​​​​as follows: let N be the length of the array A at the current step. 1) increase the length of the array to 2 * N. Each A [i] element in the range from N + 1 to 2 * N - 1 receives the value A [i] = (A [2 * N-i-1] + 1) % 4. As a result, the right part of the array contains a mirror copy of the left part, rotated 90 degrees to the right. The operation (X + 1) % 4 is the rotation. The result is drawn by calculating the offset of the next point from the previous one in the direction specified by each element of the array A

  • @BrettCooper4702
    @BrettCooper4702 2 หลายเดือนก่อน +1

    Line packing to remove lines that already exist / overlap in the array of lines.

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน

      Yes, good idea!!

    • @alessandrofenu4325
      @alessandrofenu4325 2 หลายเดือนก่อน

      I think it is easy to prove that this doesn’t happen

  • @yujicortkristos3851
    @yujicortkristos3851 2 หลายเดือนก่อน

    I programmed it once in java by defining 2 functions calling each other. draw() draws a little segment and left() and right() are turning 90°. To start it just call draw() and f(n) right after it:
    private void f(int n) {
    if (n > 0) {
    f(n - 1);
    left();
    draw();
    g(n);
    }
    }
    private void g(int n) {
    if (n > 1) {
    f(n - 2);
    right();
    draw();
    g(n - 1);
    }
    }

  • @enpeacemusic192
    @enpeacemusic192 2 หลายเดือนก่อน +1

    Can you do Newton fractals next? They're not strictly recurring fractals like you have been doing but it's still a really super cool fractal and worth looking into!!

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      You can add it here! github.com/CodingTrain/Suggestion-Box

  • @flashbond
    @flashbond 2 หลายเดือนก่อน +2

    If I were you I would store x and y coordinates of vertecies in a seperate array. Find the max values each time and divide them by 2. I would update my zoom and canvas center according to that.

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +2

      I like this idea!

    • @flashbond
      @flashbond 2 หลายเดือนก่อน

      @@TheCodingTrain I am not a programmer. Just a hobbyist :) Your comment means so much to me 🙏 Animation speed may be also adjusted according to circumference of the whole rotating part. Some trigonametry may get involved :)

  • @elbananita2245
    @elbananita2245 2 หลายเดือนก่อน

    love your videos! :)

  • @aedyngillion9457
    @aedyngillion9457 หลายเดือนก่อน

    For the next tutorial could you do a soft body collision but with more in depth collision like the lines collide and it uses a bounding box and all that jazz

  • @dhanupawar3772
    @dhanupawar3772 2 หลายเดือนก่อน +2

    Hey Dan why don't you explain some popular generative art codes and how to make them, this is just for learning more from tou generative art community.

  • @md.nournoby4523
    @md.nournoby4523 2 หลายเดือนก่อน

    The king of js in the planet

  • @AmandeepSingh-ot5zf
    @AmandeepSingh-ot5zf 2 หลายเดือนก่อน +2

    hey I caught it in 16 seconds :D

  • @csabakiraly5794
    @csabakiraly5794 27 วันที่ผ่านมา

    this guy is like the bob ross of coding

  • @geoffwagner4935
    @geoffwagner4935 2 หลายเดือนก่อน

    he Billy Mayse'd the challenge with boom

  • @gower1973
    @gower1973 2 หลายเดือนก่อน

    This went from done to car crash in about three minutes flat 😂

  • @69zwaan
    @69zwaan 2 หลายเดือนก่อน +1

    Geweldig idee, maar je kan ook met image.copy =[] of cretegraphics is dat mijn goede idee?

  • @realcygnus
    @realcygnus 2 หลายเดือนก่อน

    nifty

  • @meeper18
    @meeper18 2 หลายเดือนก่อน

    It’s always this.

  • @adrien8768
    @adrien8768 2 หลายเดือนก่อน

    Hey, great video :) p.s, can you share the QUAD-Tree code please?

  • @ryaneakins7269
    @ryaneakins7269 2 หลายเดือนก่อน +2

    Don Knuth has this curve on his wall at home. There was a Numberphile video about it.

  • @lordofthe6string
    @lordofthe6string 2 หลายเดือนก่อน

    Is this what was in Jurassic Park?

  • @rubensjoserosa
    @rubensjoserosa 2 หลายเดือนก่อน

    Hello, Dan! How are you!! Your work is wonderfull! I would like to know if you can ship you book to Brazil.

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      Can you search local online book retailers? It's being distributed internationally be Penguin Random House so you should be able to find it! Make sure it's the 2024 version and not the 2012 version. Let me know at daniel@thecodingtrain.com b/c lots of folks are asking!

  • @dansxmods
    @dansxmods 2 หลายเดือนก่อน

    Would love to buy the physical copy of The Nature of Code but shipping to Australia is $56 US and all up it would be just shy of $100 AUD, can you look at a cheaper option to ship to Australia pretty please?

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน

      This link should help! www.penguin.com.au/books/the-nature-of-code-9781718503700

  • @ranawaqas4080
    @ranawaqas4080 หลายเดือนก่อน

    from 208 i seeing that you only work on p5

  • @LoPhatKao
    @LoPhatKao 2 หลายเดือนก่อน

    should add something for sale on your NOC site -- signed copies of the book
    even if it just said "thanks for the support! - Dan"
    i'd pay extra for it 😊
    edit: buying one anyway for my birthday

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน

      Unfortunately I don't have an easy way of doing this, but I will be hosting events in NYC where I will sign the book!

  • @VVVVVVVVVVVVVVVVVVVVVVVVVZ
    @VVVVVVVVVVVVVVVVVVVVVVVVVZ 4 วันที่ผ่านมา

    Que doido, achei que só mr beast fazia video dublado em portugues 🥳

  • @StinerDevHub
    @StinerDevHub 19 วันที่ผ่านมา

    🎉🎉🎉🎉

  • @PMA_ReginaldBoscoG
    @PMA_ReginaldBoscoG 2 หลายเดือนก่อน

    The book is not available in India. Please do something 🙏

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      I’m going to ask No Starch about this. It’s being distributed by the publisher internationally! Feel free to contact them on their website also.

  • @-Dygex
    @-Dygex 2 หลายเดือนก่อน

    can you make tornado :D

  • @piotrlesiakowski7794
    @piotrlesiakowski7794 2 หลายเดือนก่อน

    Is it a casio calculator watch? :o

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      indeed, good catch!

  • @adminiget1602
    @adminiget1602 2 หลายเดือนก่อน +2

    Hi! Can you please make more videos on the Apple ][? Maybe TRY coding a platformer in it? Or graphics mode Snake?

  • @thailonlucasart
    @thailonlucasart 2 หลายเดือนก่อน

    Is there a way I can buy the book in Brazil?

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      I'm trying to make a list of all the international retailers that carry it for the website Can you find it on here? www.buscalibre.com/ If amazon will ship to you, it will likely have it as well. Let me know!

    • @TheCodingTrain
      @TheCodingTrain  2 หลายเดือนก่อน +1

      (Make sure when you look you don't buy the older 2012 version by accident. You can tell by the cover and the publication date)

    • @RicardoPrediger
      @RicardoPrediger 2 หลายเดือนก่อน +1

      I'm not the only Brazilian who loves this guy 🎉
      I would also like to have this book. I'm a programming teacher and I've been using processing in my classes for 3 years.
      (BR) Eu não sou o único brasileiro que adora esse cara 🎉
      Também gostaria de ter esse livro. Sou professor de programação e a 3 anos uso processing nas minhas aulas

    • @thailonlucasart
      @thailonlucasart 2 หลายเดือนก่อน +1

      @@RicardoPrediger akakka Eu assisto o canal há anos! Nem sempre faço tudo oq ele mostra mas me divirto muito vendo ele programar kakakak Sou programador e venho aqui pelas aulas akkaka

  • @maltezachariassen7496
    @maltezachariassen7496 2 หลายเดือนก่อน +1

    You are technically drawing a lot of lines on top of each other.. you could optimize by removing duplicate lines

  • @nameundefined6265
    @nameundefined6265 2 หลายเดือนก่อน

    Haven't watched it full yet, but wouldn't vectors be better than your own segment class?

  • @peterbonnema8913
    @peterbonnema8913 2 หลายเดือนก่อน

    second!

  • @fachriem
    @fachriem 2 หลายเดือนก่อน

    hi there, could you please try game ‘The Farmer was Replaced’ its interactive coding base game using basic python to control the drone to solved maze

  • @rainy4226
    @rainy4226 2 หลายเดือนก่อน

    Hi