Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Определение выпуклости

.txt
Скачиваний:
4
Добавлен:
07.06.2018
Размер:
1.36 Кб
Скачать
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <conio.h>
using namespace std;


void angle (int x1,y1,x2,y2);
{
  int dx,dy;
  float r;

  dx=x2-x1;
  dy=y2-y1;
  r=sqrt(dx*dx+dy*dy);
  if dy>=0 
  {
	  if dx=0 { angle:=pi/2; }
	  if dx>0 { angle:=abs(arctan(dy/dx)) };
	  if dx<0 { angle:=pi-abs(arctan(dy/dx)) };
  }
  if dy<0 
  {
	  if dx=0 { angle:=3*pi/2; }
	  if dx>0 { angle:=2*pi-abs(arctan(dy/dx)); }
	  if dx<0 { angle:=pi+abs(arctan(dy/dx)); }
  }
}

void main()
{
int i,i1,k,x,y,v;
  float a1,a2;
  bool key;



  printf ("Vvedite ko-vo vershin \n kol=");
  scanf ("%i", &k);
  for (i=1, i<k, i++) 
  {
  
    printf("Vvedite koordinati x и y vershiny v:");
    scanf("%f, %f", &x, &y);
  }
  key=true;
  for (i=2, i<k, i++)
  {
	  if i=k {i1=1} else {i1=i+1;}
    a1=angle(v[i-1,1],v[i-1,2],v[i,1],v[i,2]);
    a2=angle(v[i,1],v[i,2],v[i1,1],v[i1,2]);
	if ((((a2-a1)<0)and((a2-a1)>-3.14)) || ((a2-a1)>3.14))
	{
	key:=false;
		printf("Error...");
      system("pause");
	}
  }
  a1=angle(v[k,1],v[k,2],v[1,1],v[1,2]);
  a2=angle(v[1,1],v[1,2],v[2,1],v[2,2]);
  if (((((a2-a1)<0)&&((a2-a1)>-3.14)) || ((a2-a1)>3.14))) 
  {
	  key=false;
  }
  if (key=true) 
  { 
	  printf("vipuklii");
  } 
  else
  { 
	  printf("vognutii");
  }
  system ("pause");
}