IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Задача на турбо си++(геометрия, графика), извините если не в ту подтему, пятерка срывается =)
сообщение
Сообщение #1


Гость






Уважаемый, у меня есть такая задача: задаются три точки(А,Б,С), надо нарисовать треугольник, найти точку пересечения медиан(точка Д) и закрасить треугольник АДБ. после часового вояния я поняла что моя программа не работает на некоторых тестах, а именно координаты точки д считаются неправильныи образом. Прошу вашей помощи и советов. код прилагается:
Код

#include<stdio.h>
#include<graphics.h>
#include<math.h>
main()
{
int g=DETECT,m,xa,xb,xc,ya,yb,yc;
float xl,yl,xm,ym,la,da,bm,db,ab,s,p,xd,yd,k1,k2,b1,b2,k;
initgraph (&g,&m,"c:\\bc\\bgi");
scanf("%d %d %d %d %d %d",&xa,&ya,&xb,&yb,&xc,&yc);
xl=(xb+xc)/2;
yl=(yb+yc)/2;
printf("%f %f",xl,yl);
xm=(xa+xc)/2;
ym=(ya+yc)/2;
printf("%f %f",xm,ym);
la=sqrt((xa-xl)*(xa-xl)+(ya-yl)*(ya-yl));
da=la/3*2;
bm=sqrt((xb-xm)*(xb-xm)+(yb-ym)*(yb-ym));
db=bm/3*2;
ab=sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb));
xd=2*(xa+xl)/3;
yd=2*(ya+yl)/3;
p=(da+db+ab)/2;
s=sqrt(p*(p-da)*(p-db)*(p-ab));
printf("S=%f\n%f %f",s,xd,yd);

line(320,1,320,479);
line(1,240,639,240);
xa=xa+320;
ya=-ya+240;
xb=xb+320;
yb=-yb+240;
xc=xc+320;
yc=-yc+240;
xd=xd+320;
yd=-yd+240;
xm=xm+320;
ym=-ym+240;
xl=xl+320;
yl=-yl+240;
line(xa,ya,xb,yb);
line(xa,ya,xc,yc);
line(xb,yb,xc,yc);
line(xa,ya,xl,yl);
line(xb,yb,xm,ym);
outtextxy(xa,ya,"A");
outtextxy(xb,yb,"B");
outtextxy(xc,yc,"C");
outtextxy(xd,yd,"D");
outtextxy(xm,ym,"M");
outtextxy(xl,yl,"L");

return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Раздел не тот, переношу в Другие языки.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Подскажите хотя бы идею нахождения точки пересечения медиан, пож-ста, горю (огнетушитель не предлагать).
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


1. находишь середины сторон
2. находишь уравнения 2 медиан (прямые, проходящие через найденные точки и вершины)
3. находишь точку их пересечения.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(мисс_граффити @ 19.02.2008 16:35) *

1. находишь середины сторон
2. находишь уравнения 2 медиан (прямые, проходящие через найденные точки и вершины)
3. находишь точку их пересечения.

не подскажете как это сделать?
просто у меня почти аналгичная задача =)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 6.12.2021 4:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name