Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. double pole1(double* x, double* y, int n){
  8.     double P =0;
  9.     for(int i=0; i<n; i++){
  10.         P +=(x[i]*y[(i+1)%n]-x[(i+1)%n]*y[i]);
  11.     }
  12.     return fabs(P/2);
  13. }
  14.  
  15. double pole2(double* x, double* y, int n){
  16.     double P =0;
  17.     for(int i=0; i<n; i++){
  18.         P += ((x[i]+x[(i+1)%n])*(y[(i+1)%n]-y[i]));
  19.     }
  20.     return fabs(P/2);
  21. }
  22.  
  23. //suma pol trojkatow
  24. double pole3(double* x, double* y, int n, double xn, double yn){
  25.     double P =0;
  26.     for(int i=0; i<n; i++){
  27.         P += fabs((x[(i+1)%n]-x[i])*(yn-y[i])-(y[(i+1)%n]-y[i])*(xn-x[i]));
  28.     }
  29.     return P/2;
  30. }
  31.  
  32. bool czyWew(double* x, double* y, int n, double xn, double yn){
  33.     if(pole2(x,y,n)==pole3(x,y,n,xn,yn)){
  34.         return true;
  35.     }
  36.     else{
  37.         return false;
  38.     }
  39. }
  40.  
  41. //
  42. //double pole3(double* x, double* y, int n){
  43. //    double P = 0;
  44. //    int i =0 ;
  45. //    double ax =x[i+1]-x[i];
  46. //    double ay =y[i+1]-y[i];
  47. //    double bx =x[i+2]-x[i+1];
  48. //    double by =y[i+2]-y[i+1];
  49. //    return fabs(ax*by-ay*bx)/2;
  50. //}
  51.  
  52. int main()
  53. {
  54.     int n=3;
  55.     double x[] = {1,5,1};
  56.     double y[] = {4,1,1};
  57.  
  58.     double xn= 2;
  59.     double yn= 2;
  60.     cout << (pole1(x,y,n)) <<endl;
  61.     cout << (pole2(x,y,n)) <<endl;
  62.     cout <<  pole3(x,y,n, xn, yn) <<endl;
  63.  
  64.     double x2[] = {1,1,3,1,0};
  65.     double y2[] = {1,0,1,3,1};
  66.     cout << pole1(x2,y2,5) <<endl;
  67.     cout << pole2(x2,y2,5) <<endl;
  68.     double xn2= 1.5;
  69.     double yn2= 1.5;
  70.     cout << "Jesli wezmiemy punkt wewnatrz figury to pole bedzie takie samo" <<endl;
  71.     cout <<  pole3(x2,y2,5, xn, yn) <<endl;
  72.  
  73.     cout << "A jesli wezmiemy punkt poza figura to pole juz bedzie inne" <<endl;
  74.     cout <<  pole3(x2,y2,5,1.01,3) <<endl;
  75.  
  76.     if (czyWew(x2,y2,5,1.01,3)){
  77.         cout << "Punkt (1.01,3) znajduje sie wew. figury" <<endl;
  78.     }
  79.     else{
  80.         cout << "Punkt (1.01,3) znajduje sie zew. figury" <<endl;
  81.     }
  82.  
  83.  
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement