Для окружности определены разные формулы
======
=====
=====
Какие из формул использовать чаще зависит от ситуации. Вот, у меня при необходимости разместить точку на окружности, никак не выходило этого сделать из-за того что я смещал центр (я упорно пытался использовать не тригонометрическую формулу). Как оказалось, встретив тригонометрическую формулу я в течении 5 минут смог применить её для решения этой задачи.
Иногда требуется случайная и независимая точка на окружности
Код C++ Разместить точку на окружности
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <iostream.h> #include <graphics.h> #include <math.h> struct Okr {double x,y,r;} A,O; //Структур для создания двух точек void input() //Функция ввода параметров { /*ЭТО ОКРУЖНОСТЬ*/ O.x=getmaxx()/2; O.y=getmaxy()/2; O.r=100; /*ЭТО ТОЧКА, КОТОРУЮ ЛОЖИМ НА ОКРУЖНОСТЬ*/ A.x=O.r*cos(40)+O.x; //Определяем координату х A.y=O.r*sin(40)+O.y; //Определяем координату y //ЧЕРТИМ ТОЧКУ И ОКРУЖНОСТЬ circle(A.x,A.y,4); circle(O.x,O.y,O.r); } void main() { int gd=DETECT,gm; //Переменные для инициализации графического режима initgraph(&gd,&gm,""); //Инициализация графического режима input(); //Вводим данные cin.get(); //Ждем нажатие Enter closegraph(); //Завершаем работу графического режима return; } |
Цифра 40 при определении координат — это угол наклона прямой. Но если известна только одна точка, то через нее можно провести бесконечное множество прямых, поэтому я угол задал случайный. Если же известно две точки и нужно найти место пересечения окружности с прямой, то угол такой прямой можно найти по формуле (y2-y1)/(x2-x1) — Если x2-x1=0, то угол наклона можно сделать числом 3.14 (ПИ).
Многие путаются в углах из-за того что они тут указываются в радианах.
Не имея никакого опыта вряд ли сходу можно легко разобрать что здесь написано, хотя написано немного, но необходимо знать функции, параметры функций и общее понятие структур.
Спасибо, все хорошо заработало: