Как можно реализовать следующую функцию на разных языках?Как вычислить точку на окружности круга?
Вычислить (x,y)
точку на окружности, указанные входные значения:
- Радиус
- Угол
- происхождения (необязательный параметр, если поддерживается языком)
Как можно реализовать следующую функцию на разных языках?Как вычислить точку на окружности круга?
Вычислить (x,y)
точку на окружности, указанные входные значения:
parametric equation for a circle является
x = cx + r * cos(a)
y = cy + r * sin(a)
Где г это радиус, сх, су происхождение, и угол.
Это довольно легко адаптироваться к любому языку с основными функциями триггера. Обратите внимание, что большинство языков будет использовать radians для угла в триггерных функциях, поэтому вместо того, чтобы ездить на велосипеде через 0..360 градусов, вы едете на велосипеде через 0,27 дюйма радиан.
Обратите внимание, что 'a' должно быть в радианах - это было очень трудно для меня, как новичок, чтобы понять. – ioanb7
Я пытаюсь получить это уравнение в течение часа. Благодарю. Кто знает, какие тригонные личности вы узнали в старшей школе, было бы так полезно. –
@Dean Нет необходимости в дополнительных скобках из-за приоритета оператора. Когда у вас есть '+' и '*' как в этих двух уравнениях и без каких-либо скобок, вы всегда отправляете '*' сначала, а затем для '+'. – rbaleksandar
Вот моя реализация в 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);
}
Предварительно вычислите коэффициент преобразования, чтобы уменьшить вероятность неправильного преобразования с использованием жестко закодированных номеров. –
Кто нуждается в аккуратном, когда у вас есть complex numbers:
#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));
}
Как это работает? Как он сравнивает скорость? Почему это не используется чаще? –
@ MarkA.Ropper как работают сложные числа? - найдите учебник по математике или перейдите из https://en.wikipedia.org/wiki/Euler%27s_identity, если вы уже знаете, что такое комплексное число. Вероятно, это не так эффективно по скорости, по сравнению с реализацией греха как справочной таблицы, но иногда вы используете сложные числа, чтобы представлять точки во всем, чтобы использовать другие свойства. Подобно использованию кватернионов для 3D-ротации, это не настоящая скорость, а возможности, которые они вам дают. –
Вряд ли, @Binary, так как он отправил ответ. Это один из ответов на вопросы (которые разрешены, согласно предыдущим сообщениям модераторов). Но, учитывая, что он уже ответил в http://stackoverflow.com/questions/674225/calculating-point-on-a-circles-circumference-from-angle-in-c, он, вероятно, лучше всего закрыт как обман. Языки, которые делают это, не будут такими разрозненными. – paxdiablo
Я только что вошел, чтобы сказать это: вы, сэр (ладья), являются Jerk. Не у всех есть такой же уровень образования, как и у вас, но он все еще может кодироваться, поэтому нет, это не тривиальный вопрос о гольф-поле. Позор тебе. – Braineeee