/ / दिशा में झुककर एक सेगमेंट को ट्रांसफॉर्म करना - सी ++, ओपनग्ल, गणित, प्रतिपादन

दिशा में झुकाकर एक सेगमेंट को बदलना - सी ++, ओपनग्ल, गणित, प्रतिपादन

मुझे यकीन नहीं है कि इस तक कैसे पहुंचे: मुझे इकाई दिशा के संबंध में लंबाई 1 के खंड को "मोड़ना" चाहिए। खंड की लंबाई से 1 / y मोड़ की ताकत है। ट्रांसफॉर्म को सेगमेंट पर हर बिंदु के लिए परिभाषित करने की आवश्यकता है और लंबाई संरक्षित की जानी चाहिए। निम्नलिखित में मुझे दिमाग है: यहां छवि विवरण दर्ज करें

उत्तर:

उत्तर № 1 के लिए 1

मुझे लगता है कि आप सेगमेंट को मोड़ना चाहते हैंकि यह एक स्थिर वक्रता के होगा, यह है कि यह त्रिज्या 1 / के सर्कल के लंबाई 1 की चाप बनने वाला है। फिर सेगमेंट मैप्स के बिंदु (0, टी) बिंदु पर:

(1 - cos(kt))/k    ,    sin(kt)/k

के के छोटे मूल्यों के लिए (वह वक्रता हैशून्य है और सेगमेंट लगभग सीधे है), शून्य दुर्घटना से विभाजन को रोकने के लिए, आप इसे निम्न सूत्र से मानचित्रित करते हैं (जो उपर्युक्त के = 0 के ऊपर का टेलर विस्तार है):

  k t^2 / 2       ,      t - k^2 t^3 / 6

संपादित करें: आपकी टिप्पणी के बाद:

यह मानते हुए कि आपकी दिशा वेक्टर (x, y) है, फिर संबंधित वक्रता का मान जो चाप के अंत में टेंगेंट वेक्टर देगा (टी = 1) इनके द्वारा दिया जाता है:

k = atan2(x, y)