निम्नलिखित समारोह को विभिन्न भाषाओं में कैसे लागू किया जा सकता है?
(x,y)
एक वृत्त की परिधि पर बिंदु की गणना करें , दिए गए इनपुट मान:
- त्रिज्या
- कोण
- उत्पत्ति (वैकल्पिक पैरामीटर, यदि भाषा द्वारा समर्थित है)
निम्नलिखित समारोह को विभिन्न भाषाओं में कैसे लागू किया जा सकता है?
(x,y)
एक वृत्त की परिधि पर बिंदु की गणना करें , दिए गए इनपुट मान:
जवाबों:
एक चक्र के लिए पैरामीट्रिक समीकरण है
x = cx + r * cos(a)
y = cy + r * sin(a)
कहाँ आर त्रिज्या, है cx, CY मूल, और एक कोण।
मूल ट्रिगर फ़ंक्शन के साथ किसी भी भाषा में अनुकूलित करना बहुत आसान है। ध्यान दें कि अधिकांश भाषाएं ट्रिग फ़ंक्शन में कोण के लिए रेडियन का उपयोग करेंगी , इसलिए 0..360 डिग्री के माध्यम से साइकिल चलाने के बजाय, आप 0..2PI रेडियन के माध्यम से साइकिल चला रहे हैं।
+
और *
उन दो समीकरणों में और बिना किसी कोष्ठक के आप हमेशा *
पहले और फिर के लिए जाते हैं +
।
यहाँ C # में मेरा कार्यान्वयन है:
public static PointF PointOnCircle(float radius, float angleInDegrees, PointF origin)
{
// Convert from degrees to radians via multiplication by PI/180
float x = (float)(radius * Math.Cos(angleInDegrees * Math.PI / 180F)) + origin.X;
float y = (float)(radius * Math.Sin(angleInDegrees * Math.PI / 180F)) + origin.Y;
return new PointF(x, y);
}
जब आपके पास जटिल संख्याएँ हों तो उन्हें किसकी आवश्यकता होगी :
#include <complex.h>
#include <math.h>
#define PI 3.14159265358979323846
typedef complex double Point;
Point point_on_circle ( double radius, double angle_in_degrees, Point centre )
{
return centre + radius * cexp ( PI * I * ( angle_in_degrees / 180.0 ) );
}
जावास्क्रिप्ट (ES6) में लागू :
/**
* Calculate x and y in circle's circumference
* @param {Object} input - The input parameters
* @param {number} input.radius - The circle's radius
* @param {number} input.angle - The angle in degrees
* @param {number} input.cx - The circle's origin x
* @param {number} input.cy - The circle's origin y
* @returns {Array[number,number]} The calculated x and y
*/
function pointsOnCircle({ radius, angle, cx, cy }){
angle = angle * ( Math.PI / 180 ); // Convert from Degrees to Radians
const x = cx + radius * Math.cos(angle);
const y = cy + radius * Math.sin(angle);
return [ x, y ];
}
उपयोग:
const [ x, y ] = pointsOnCircle({ radius: 100, angle: 180, cx: 150, cy: 150 });
console.log( x, y );
a
रेडियंस में होना चाहिए - यह समझने के लिए एक शुरुआत के रूप में मेरे लिए वास्तव में कठिन था।