![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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. |
![]() |
![]() |
![]() |
#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; } и еще не получается с прямой , подскажите как быть |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 06.10.2022
Сообщений: 3
|
![]() Код:
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
13 лет уже ни кому не надо.
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,581
|
![]()
"Новое - это хорошо отлежавшееся старое" ©
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 06.10.2022
Сообщений: 3
|
![]()
До меня все еще не доходит как составить уравнение прямой по двум точкам 0-0, из-за этого уравнение прямой написано от руки, если есть умные люди здесь , прошу помочь.
Код:
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#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 |