|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.06.2009, 23:20 | #1 |
Новичок
Джуниор
Регистрация: 06.06.2009
Сообщений: 2
|
программа , круг элипс прямая на С++
Вообщем ткоее дело есть задача , сам единственное что вышло это разобратся с кругом , а как с элипсом и прямой незнаю , если конкретно то как найти у элипса центр, помогите разобратся, язык конечно С++
Разработать программу, которая в ответ на вводимую с клавиатуры пару вещественных чисел, представляющих собой координаты X,Y точки A на плоскости, выдает текстовое сообщение о принадлежности этой точки заданной области. Например:"Точка принадлежит заданной области" или "Точка не принадлежит заданной области". В программе должно быть предусмотрено повторение всех операций с использованием оператора goto по нажатию заданной клавиши. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> main () { clrscr(); int x,x0,y,y0,r,a,b,c,y1,x2; cin>>x; cin>>y; x2=24; r=5; y1=-20; x=x2; y=0; a=1; b=-2*x; c=x*x+(y-y0)*(y-y0)-r*r; y0=y1+r; x0=(-b+sqrt(b*b-4*a*c))/(2*a); if ((x>0 && y>0 && ((x-x0)*(x-x0)+(y-y0)*(y-y0)<r*r)) | (x<=0 && y<=0 && ((x-x0)*(x-x0)+(y-y0)*(y-y0)<r*r))) cout<<"YES!!!"; else cout<<"NO!!!"; getch(); return 0; } Последний раз редактировалось Kript; 06.06.2009 в 23:23. |
07.06.2009, 19:03 | #2 |
Новичок
Джуниор
Регистрация: 06.06.2009
Сообщений: 2
|
После долгих мучений вот что вышло , поправте если что не так
#include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> #define r 23 #define AA 19 #define BB 35 main () { clrscr(); int x,x1,x2,x0okr,x0el; int y,y1,y2,y0okr,y0el,a,b,c; x1=-22; x2=25; y2=-37; y1=-20; x=x1; y=0; a=1; //Vyvod centra okrygnosti b=-2*x; y0okr=y1+r; c=x*x+(y-y0okr)*(y-y0okr)-r*r; x0okr=(-b+sqrt(b*b-4*a*c))/(2*a); x=x2; y=0; a=1; //Vyvod centra elipsa b=-2*x; y0el=y2+r; c=x*x+(y-y0el)*(y-y0el)-AA*BB; x0el=(-b+sqrt(b*b-4*a*c))/(2*a); cin>>x; //vvod X i Y cin>>y; if ((x>0 && y>0 && ((x-x0okr)*(x-x0okr)+(y-y0okr)*(y-y0okr)<r*r)) | (x<=0 && y>=0 && ((x-x0okr)*(x-x0okr)+(y-y0okr)*(y-y0okr)<r*r))) if (((x>0) && (y<0) && ((x-x0el)*(x-x0el))/(AA*AA)+((y-y0el)*(y-y0el))/BB<1) | ((x>0)&&((x-x0el)*(x-x0el))/(AA*AA)+((y-y0el)*(y-y0el))/BB>1)) cout<<"YES!!!"; else cout<<"NO!!!"; getch(); return 0; } и еще не получается с прямой , подскажите как быть |
06.10.2022, 14:10 | #3 |
Новичок
Джуниор
Регистрация: 06.10.2022
Сообщений: 3
|
ну вдруг кому надо
Код:
|
06.10.2022, 14:45 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
13 лет уже ни кому не надо.
|
06.10.2022, 21:21 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
"Новое - это хорошо отлежавшееся старое" ©
|
07.10.2022, 23:49 | #6 |
Новичок
Джуниор
Регистрация: 06.10.2022
Сообщений: 3
|
До меня все еще не доходит как составить уравнение прямой по двум точкам 0-0, из-за этого уравнение прямой написано от руки, если есть умные люди здесь , прошу помочь.
Код:
|
08.10.2022, 00:17 | #7 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Есть уравнение прямой на плоскости в общем виде: A*X + B*Y + C = 0; или так: k*X+b=y (переносим B*Y в правую часть и делим все уравнение на -B)
Подставляем в него координаты обоих точек и решаем систему из двух уравнений с двумя неизвестными (k и b): k*x0 + b = y0 и k*x1 + b = y1; получаем k = (y1 - y0) / (x1 - x0) и b = y0 - (y1 - y0) * x0 / (x1 - x0) из чего получаем следующий код Код:
Последний раз редактировалось macomics; 08.10.2022 в 00:19. |
17.10.2022, 18:56 | #8 |
Новичок
Джуниор
Регистрация: 06.10.2022
Сообщений: 3
|
Дополнил и оптимизровал код - https://github.com/voinov-arduino/lab3
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в текстовом документе нарисовать элипс состоящий из звездочек *, по заданному радиусу. | autopsist | Помощь студентам | 6 | 22.12.2008 13:07 |
Элипс | xakkkkker | Общие вопросы Delphi | 1 | 02.11.2008 06:07 |
Прямая линия | serres | Общие вопросы Delphi | 1 | 04.11.2007 18:33 |
Прямая в пространстве | Neuros1s | Общие вопросы Delphi | 12 | 29.06.2007 00:06 |