#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
#include<fstream.h>
#define PIXEL_COUNT 10
struct Pt
{
double x;
double y;
};
//функция нахождения длины стороны треугольника.
// входными параметрами служат координаты конца и начала стороны.
double SideLength(double x1,double y1,double x2,double y2)
{
double a = sqrt((x2-x1)/10*(x2-x1)/10+(y2-y1)/10*(y2-y1)/10);
return a*10;
}
//функция нахождения периметра треугоника.
//входные параметры - стороны треугольника
double Perimetr (double s1, double s2, double s3)
{
return (s1+s2+s3);
}
//функция нахождения площади треугольника (по формуле Герона)
//входные параметры - стороны треугольника
double Sqare (double s1, double s2, double s3)
{
double p;
p = (Perimetr(s1, s2, s3))/2;
return sqrt((p*(p-s1)*(p-s2)*(p-s3)));
}
void main()
{
int gd,gm,flag,i;
double s1,s2,s3,S,p,R,x1, x2, y1, y2;
Pt t, a[10];
gd=DETECT;
initgraph(&gd,&gm,"");
start:
cleardevice();
randomize();
int maxx = getmaxx();
int maxy = getmaxy();
//Ставим рандомно точки на плоскости
for(i=0; i<10; i++)
{
a.x = random(maxx);
a.y = random(maxy);
putpixel(a.x, a.y, 10);
}
//упорядочиваем вершины треугольника по возрастанию их y-координаты
if(a[0].y>a[1].y & a[0].x>a[1].x) {t=a[0]; a[0]=a[1]; a[1]=t;}
if(a[1].y>a[2].y & a[1].x>a[2].x) {t=a[1]; a[1]=a[2]; a[2]=t;}
if(a[0].y>a[2].y & a[0].x>a[2].x) {t=a[0]; a[0]=a[2]; a[2]=t;}
if(a[0].y>a[1].y & a[0].x>a[1].x) {t=a[0]; a[0]=a[1]; a[1]=t;}
setcolor(YELLOW); circle(a[0].x,a[0].y,3);
setcolor(WHITE); circle(a[2].x,a[2].y,3);
//чертим треугольник
for(i = 0; i < 3; i++)
{
putpixel(a.x,a.y, WHITE);
}
line(a[0].x, a[0].y, a[1].x,a[1].y);
line(a[1].x, a[1].y, a[2].x,a[2].y);
line(a[2].x, a[2].y, a[0].x,a[0].y);
setcolor(YELLOW); circle(a[0].x,a[0].y,3);
setcolor(WHITE); circle(a[2].x,a[2].y,3);
//Находим длины сторон треугольника
s1=SideLength(a[0].x,a[0].y, a[1].x,a[1].y);
s2=SideLength(a[1].x,a[1].y, a[2].x,a[2].y);
s3=SideLength(a[2].x,a[2].y, a[0].x,a[0].y);
// Находим полупериметр треугольника и его площадь
p = (Perimetr(s1, s2, s3))/2;
S = Sqare (s1, s2, s3);
cout<<"p = "<<p<<endl;
cout<<"S = "<<S<<endl;
getch();
closegraph();
}
Работа с графикой, библиотека graphics.h. Закончить программу
Не могу сделать единственное, сделать так что бы в треугольнике содержалось максимальное количество точек. Помогите пожалуйста, а то через 2 дня сдавать уже, а она не закончена(((
Код:
может надо перебрать все возможные треугольники?