5 पॉइंट द्वारा GN⁺ 2025-08-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 3D space में object movement को parametric functions से व्यक्त करने के तरीके का एक वैचारिक परिचय
  • circle, helix और spherical helix path तक धीरे-धीरे अधिक जटिल paths को गणितीय रूप से बनाने की प्रक्रिया का वर्णन
  • हर coordinate axis (x, y, z) को समय के function के रूप में परिभाषित करके कई तरह की movements लागू की जा सकती हैं
  • खास तौर पर spherical helix के मामले में, radius में बदलाव देने वाले trigonometric functions के गुणन से 3D helix path बनाया जाता है
  • यह एक रचनात्मक उदाहरण है जो दिखाता है कि इस तरीके से objects को किसी भी मनचाहे path पर चलाया जा सकता है

3D space में object movement की खोज

यह लेख 3D space में objects को move करने के विभिन्न तरीकों, और खासकर spherical helix path को गणितीय रूप से कैसे define और implement किया जा सकता है, इस पर एक व्यक्तिगत खोज का परिणाम है।

Helix और 3D movement की बुनियाद

  • Helix एक 3D संरचना है जो spring की तरह घूमते हुए लिपटती है

  • Spherical helix का मतलब है sphere की सतह के साथ spiral रूप में घूमना

  • 3D space में object की position x, y, z तीन axes के coordinates से तय होती है

    • x-axis: बाएँ-दाएँ movement
    • y-axis: ऊपर-नीचे movement
    • z-axis: आगे-पीछे (depth) दिशा में बदलाव
  • अगर object की position को समय(t) के अनुसार mathematical functions से define किया जाए, तो movement path बनाया जा सकता है

Parametric functions और सरल path के उदाहरण

  • उदाहरण: अगर x position को 10 * cos(πt/2) से define किया जाए, तो यह हर 2 सेकंड में -10 से 10 तक आने-जाने वाली cosine wave movement बन जाती है

  • इसी तरह y position को 10 * cos(πt/2) रखने पर vertical direction में भी back-and-forth motion संभव है

  • x, y पर अलग-अलग functions (उदाहरण: x = 10 * cos(πt/2), y = 10 * sin(πt/2)) लगाने से phase में अलग movement मिलती है, और दोनों को मिलाने पर circular path बनता है

  • function में समय के अनुपात वाला term (उदाहरण: x = 0.03 * t * cos(πt/2)) गुणा करने पर radius धीरे-धीरे बढ़ने वाला pattern, यानी spiral path बनाया जा सकता है

Spherical helix path बनाना

  • सामान्य plane spiral से अलग, spherical helix को 3D path की ज़रूरत होती है

    • z के मान में 10 * cos(0.02 * πt) जैसी अभिव्यक्ति देकर आगे-पीछे की position को धीरे-धीरे बदला जा सकता है
  • x और y में sin(0.02 * πt) जैसे trigonometric function के गुणन का उपयोग करके ऐसा प्रभाव बनाया जा सकता है जिसमें radius बीच में सबसे बड़ा हो और दोनों सिरों पर छोटा

  • x और y दोनों पर यह गुणन लागू करने से, circular motion करते हुए sphere की सतह के साथ 3D spiral path पर move करने वाला मार्ग बनाया जा सकता है

  • इस तरह के function combinations से spherical helix path का mathematical implementation पूरा होता है

सारांश और उपयोग

  • हर 3D path को x, y, z को अलग-अलग समय के parametric functions के रूप में define करके बनाया जा सकता है
  • इसका मतलब है कि साधारण circle और spiral से लेकर जटिल paths तक को गणितीय रूप से specify किया जा सकता है
  • इस approach से यह दृश्य रूप में समझा जा सकता है कि जटिल दिखने वाली movement भी असल में chaos नहीं, बल्कि स्पष्ट रूप से परिभाषित mathematical path होती है

visualrambling.space, Damar का एक personal project है जहाँ वे विभिन्न विषयों को सीखते हैं और उन्हें visual रूप में प्रस्तुत करते हैं

1 टिप्पणियां

 
GN⁺ 2025-08-21
Hacker News राय
  • पुराने समुद्री नेविगेशन में ऐसी वक्र रेखाएँ (rhumb line, loxodrome) बहुत महत्वपूर्ण थीं
    क्योंकि यात्रा के दौरान एक ही bearing बनाए रखना कहीं ज़्यादा आसान होता था
    इसी वजह से नाविक यथासंभव ऐसे ही मार्गों का अनुसरण करने की कोशिश करते थे
    इसी तरह rhumb line की अवधारणा सामने आई
    Rhumb line Wikipedia देखें
    Mercator मानचित्रों ने ऐसे bearings की गणना को आसान बनाया
    Mercator projection Wikipedia देखें
    यह पूरा सेटअप लगातार नई गणितीय खोजों को जन्म देता रहा है
    उदाहरण के लिए, polar projection में देखने पर यह logarithmic spiral बन जाता है
    बगल से देखने पर यह wave packet जैसा दिखता है
    उसकी गणितीय दिलचस्पी इतनी है कि Paul Erdos ने भी इस पर काम किया
    संदर्भ पेपर: Spiraling the Earth with C. G. J. Jacobi. Paul Erdös
    साइड नोट के तौर पर, आज Hacker News पर spherical geometry की चर्चा काफ़ी दिख रही है
    संबंधित चर्चा लिंक:
    1
    2
    3

    • लेकिन OP की पोस्ट में दिखाई गई spiral curve rhumb line (loxodrome, rhumb line) नहीं है
      वक्र की सतह पर दूरी लगभग समान अंतराल पर है, जबकि rhumb line परिभाषा के अनुसार हमेशा meridians को एक ही कोण पर काटती है, इसलिए ध्रुवों के पास जाते-जाते रेखाएँ अधिक घनी हो जाती हैं
      सूत्र के रूप में भी,
      x = 10 · cos(π·t/2) · sin(0.02·π·t)
      y = 10 · sin(π·t/2) · sin(0.02·π·t)
      z = 10 · cos(0.02·π·t)
      अगर इसे spherical coordinates (R=10) में बदलें,
      λ(t) = π/2 · t (longitude)
      φ(t) = π/2 - 0.02·π·t (latitude)
      अवकलन करने पर d(λ)/d(φ) = -25 (स्थिर मान)
      असल rhumb line में d(λ)/d(φ) का रूप tan(α) · sec(φ) होता है, इसलिए यह latitude के साथ बदलता है
      अर्थात यह वक्र rhumb line नहीं है
      अगर बदलते हुए intersection angle वाली curve देखनी हो तो यह visualization link देखना सुझाऊँगा
  • इससे प्रेरणा मिली, इसलिए 2022 में बनाया गया एक मज़ेदार spherical project साझा कर रहा हूँ
    spheredisksample project
    मुझे लगता है कि यह आज के ट्रेंड के लिए बिलकुल फिट बैठता है
    लोगों को पसंद आने लायक sphere-resample project भी सुझाता हूँ

  • Rhumb line वगैरह पर चर्चा वाला यह पोस्ट भी साथ में देखना न भूलें

  • visualization वाकई बहुत शानदार है
    एक बात और थी जिसकी उम्मीद थी: “क्या इसे constant speed से move कराया जा सकता है?”
    अगर उद्देश्य बस path के साथ points रखना है, तो ठीक है, लेकिन असल में motion देखें तो शुरुआत और अंत में यह काफ़ी धीमा चलता दिखता है (लगभग radius से तय होता है)
    अगर कोई constant speed से move कराना चाहे, या यहाँ तक कि easing function भी लागू करना चाहे, तो वह कैसे किया जाए यह जानने की जिज्ञासा है
    शायद इसके लिए कोई सुंदर mathematical trick होगी
    मोटे तौर पर मेरा अनुमान है कि formula को differentiate करके speed function बनाया जाए, फिर Pythagorean formula से dx, dy, dz को handle किया जाए, और speed function के inverse से t' के अनुसार दोबारा reparameterization किया जाए
    लेकिन मैं इस हिस्से में गणित का उतना जानकार नहीं हूँ, इसलिए शायद बस अंदाज़ा ही लगा रहा हूँ

    • constant speed से चलाने के लिए “Euclidean parameterization” चाहिए
      यानी t का मान चली गई Euclidean distance के अनुपात में समायोजित होना चाहिए
      animation में path के साथ movement के लिए यह हमेशा ज़रूरी अवधारणा है
      लेकिन ज़्यादातर मामलों में closed-form solution नहीं होता, इसलिए इसे numerically हल करना पड़ता है
      व्यवहार में, हर t पर वांछित दूरी (ds) के लिए dt को binary search या interpolation search जैसी विधियों से निकाला जाता है
      फिर उन परिणामों को सहेजकर समान अंतर वाले points की polyline बनाना व्यावहारिक तरीका है (जब तक curve समय के साथ बदल न रही हो)

    • सवाल में जिस mathematical trick का ज़िक्र है, वह “arc length parameterization” है
      यह curve की arc length function के inverse के साथ composition करने की प्रक्रिया है
      कुछ विशेष curve families को छोड़ दें तो ज़्यादातर के लिए closed form नहीं मिलता, इसलिए computational approach लेनी पड़ती है

    • t को धीमा चलाने वाली आपकी सहज समझ सही है
      t के साथ angular velocity बनी रहती है, लेकिन radius भी t के साथ बदल रहा होता है
      यह कुछ हद तक Archimedean spiral जैसा विचार है
      यदि speed का magnitude स्थिर करके reparameterize करें तो movement अधिक समान हो सकती है
      हालाँकि, radius 0 से शुरू होता है, इसलिए किसी न किसी तरह limit value को handle करना पड़ेगा
      अगर games वगैरह में किसी path को follow कराना हो, तो Z-axis के आधार पर path और tangent को target करके, बार-बार speed constraints लगाकर, bead toy की तरह drag करते हुए move कराने जैसी सरल विधि भी व्यावहारिक हो सकती है

  • “...असल में यह chaotic नहीं है. यह बस mathematical function से परिभाषित एक path है” वाली बात पर,
    यह कहना मुश्किल है कि दिया गया function सचमुच chaos दिखाता है या नहीं, लेकिन chaos की अवधारणा अपने मूल में deterministic mathematical functions में ही उभरती है (जहाँ initial conditions के प्रति अत्यधिक sensitivity होती है)
    शायद लेखक ने “random” या “non-deterministic” की जगह “chaotic” शब्द चुन लिया

    • मुझे लगता है कि इस तरह की technical pointing-out काफ़ी महत्वपूर्ण है
      Hacker News के पाठकों के लिए (या होना चाहिए) यह फ़र्क दिलचस्प होगा
      गणित में chaos वह deterministic system है जो initial conditions के प्रति अत्यधिक संवेदनशील होता है
      नतीजे भले random जैसे दिखें, लेकिन अवधारणा के स्तर पर यह randomness से पूरी तरह अलग है

    • मैं इस बात से सहमत हूँ कि chaos शब्द deterministic mathematical functions में उत्पन्न होने वाले गुण के लिए इस्तेमाल होता है
      लेकिन रोज़मर्रा के शब्दकोशीय अर्थ में इसका मतलब “पूर्ण अव्यवस्था और भ्रम”, “संयोग से शासित स्थिति”, या “जटिल प्राकृतिक प्रणालियों की अप्रत्याशितता” भी होता है
      सामान्य पाठकों की अपेक्षाओं और भाषा-प्रयोग के अनुरूप, गणितीय कठोरता की बजाय आसानी से समझ आने वाली भाषा में समझाना भी पूरी तरह सार्थक है

  • एक feedback यह है कि mobile पर navigation का तरीका मेरी अपेक्षा से अलग था
    मुझे समझ नहीं आया कि इसे कैसे चलाना है, इसलिए मैंने scroll करने की कोशिश की
    स्क्रीन touch करने पर अगला page खुल गया, तो मैंने सोचा “अच्छा, ऐसा है”
    दाईं ओर tap करने पर अगला page गया, इसलिए बाद में जब मैंने एक बार और click किया तो बाईं ओर tap करके पीछे जाने की कोशिश की, लेकिन उल्टे दो page आगे निकल गया
    इस वजह से कुछ स्क्रीन छूट गईं, जो थोड़ा अफ़सोसजनक था
    यह कोई बड़ी समस्या नहीं है, लेकिन थोड़ी-सी guidance होती तो भ्रम कम होता और ध्यान ज़्यादा बना रहता

    • पहले slide पर usage instructions हैं
      फिर भी, सहायक रूप में swipe gesture जोड़ना अच्छा हो सकता है (मुझे व्यक्तिगत रूप से tap controls पसंद हैं)
      अगर social media apps की “card stack” interface जैसी अनुभूति देनी है, तो swipe भी स्वाभाविक लगेगा
  • सामग्री काफ़ी बुनियादी स्तर की है, इसलिए बच्चों के गणित सीखने के लिए यह उपयोगी संदर्भ लगती है
    बीच-बीच में circle formula (x = r cos t, y = r sin t) जैसे गणितीय concepts का भी ज़िक्र होता तो और अच्छा लगता
    आगे विस्तार के लिए polar coordinates और linear algebra (vectors, transformations, 3D space में transformations आदि) अच्छे विषय हैं
    अगर लेखक खुद इन विषयों में बहुत सहज न हों, तो 3blue1brown के YouTube videos सुझाए जा सकते हैं
    प्रोग्रामर के नज़रिए से coding, libraries, या वास्तविक 3D objects (vertices, deformations आदि) वाले हिस्से छूट गए हैं, इसलिए वह भाग भी शामिल होता तो बेहतर होता

  • spherical helix में z-axis movement की “accuracy” को लेकर जिज्ञासा थी
    z = c * t जैसी कई functions से सरल movement बनाई जा सकती है, और इससे “peels” की thickness, consistency, uniformity आदि बदलते हैं
    यहाँ इस्तेमाल की गई function दृश्य रूप से अच्छी लगती है, लेकिन spirals के बीच समान दूरी (या एकसमान surface-area partition जैसी बातों) के नज़रिए से लक्ष्य क्या होना चाहिए, यह जानना रोचक है
    जिज्ञासा यह भी है कि यह function किस प्रक्रिया से चुनी गई, या बस देखने में अच्छी लगी इसलिए चुन ली गई

    • शायद यह function programming convenience और visual appeal के कारण बस चुन ली गई है
      मुझे लगता है कि सच में “accurate” तरीका वह होगा जिसमें point 3D space में constant speed से move करे (जैसे असली पृथ्वी पर जहाज़ चलता है)
      उस स्थिति में formula (नीचे code example देखें)
      const degrees = Math.PI / 180
      const bearing = 5 * degrees
      const k = Math.tan(bearing)
      const v = 0.001
      const phi = (t) => vt/Math.sqrt(1 + kk)
      const theta = (t) => k*Math.ln(Math.tan(phi(t)/2))
      x, y, z coordinates में रूपांतरण
      const x = (t) => Math.sin(phi(t)) * Math.cos(theta(t))
      const y = (t) => Math.sin(phi(t)) * Math.sin(theta(t))
      const z = (t) => Math.cos(phi(t))
      व्यवहार में tan(phi/2) के logarithm तक जाना पड़ता है, और यह differential equation हल करने से निकलता है
      शायद लेखक ने इतनी जटिल विधि (ln(tan(phi/2))) का इस्तेमाल नहीं किया होगा

    • path की velocity को constant बनाना ही मुख्य बात है
      आप derivative सेट करके speed को constant बना सकते हैं, फिर z के लिए solve कर सकते हैं, या t’ के अनुसार reparameterization कर सकते हैं
      z = c * t चुनने से path की parameterization और actual trajectory दोनों प्रभावित होते हैं

  • animation बहुत smooth है, काफ़ी प्रभावशाली
    हाल ही में मुझे sphere पर N points distribute करने की समस्या देखनी पड़ी थी, और उसी दौरान “fibonacci-sphere” नाम का एक सरल algorithm मिला
    यह तरीका भी sphere पर spiral बनाकर points रखने के लिए इस्तेमाल होता है
    संबंधित पेपर: fibonacci-sphere paper PDF

  • यह देखकर हैरानी हुई कि Acko.net का अभी तक ज़िक्र नहीं आया
    उसी तरह के tools का उपयोग करके complex numbers और fractals, खासकर Julia fractal, को visually समझाने वाली शानदार blog post वहाँ है
    जिसकी इसमें रुचि हो, उसे ज़रूर पढ़ना चाहिए
    How to fold a julia fractal - Acko.net blog

  • 3D Desmos में इस curve formula को सीधे manipulate करके देखा जा सकता है Desmos 3D visualization link
    यह भी दिलचस्प है कि इस spiral की parametric equation spherical coordinate system में linear है
    Coordinate transformation Wikipedia देखें

  • साझा करने के लिए धन्यवाद, इसे पढ़ना सचमुच दिलचस्प था