Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- double pole1(double* x, double* y, int n){
- double P =0;
- for(int i=0; i<n; i++){
- P +=(x[i]*y[(i+1)%n]-x[(i+1)%n]*y[i]);
- }
- return fabs(P/2);
- }
- double pole2(double* x, double* y, int n){
- double P =0;
- for(int i=0; i<n; i++){
- P += ((x[i]+x[(i+1)%n])*(y[(i+1)%n]-y[i]));
- }
- return fabs(P/2);
- }
- //suma pol trojkatow
- double pole3(double* x, double* y, int n, double xn, double yn){
- double P =0;
- for(int i=0; i<n; i++){
- P += fabs((x[(i+1)%n]-x[i])*(yn-y[i])-(y[(i+1)%n]-y[i])*(xn-x[i]));
- }
- return P/2;
- }
- bool czyWew(double* x, double* y, int n, double xn, double yn){
- if(pole2(x,y,n)==pole3(x,y,n,xn,yn)){
- return true;
- }
- else{
- return false;
- }
- }
- //
- //double pole3(double* x, double* y, int n){
- // double P = 0;
- // int i =0 ;
- // double ax =x[i+1]-x[i];
- // double ay =y[i+1]-y[i];
- // double bx =x[i+2]-x[i+1];
- // double by =y[i+2]-y[i+1];
- // return fabs(ax*by-ay*bx)/2;
- //}
- int main()
- {
- int n=3;
- double x[] = {1,5,1};
- double y[] = {4,1,1};
- double xn= 2;
- double yn= 2;
- cout << (pole1(x,y,n)) <<endl;
- cout << (pole2(x,y,n)) <<endl;
- cout << pole3(x,y,n, xn, yn) <<endl;
- double x2[] = {1,1,3,1,0};
- double y2[] = {1,0,1,3,1};
- cout << pole1(x2,y2,5) <<endl;
- cout << pole2(x2,y2,5) <<endl;
- double xn2= 1.5;
- double yn2= 1.5;
- cout << "Jesli wezmiemy punkt wewnatrz figury to pole bedzie takie samo" <<endl;
- cout << pole3(x2,y2,5, xn, yn) <<endl;
- cout << "A jesli wezmiemy punkt poza figura to pole juz bedzie inne" <<endl;
- cout << pole3(x2,y2,5,1.01,3) <<endl;
- if (czyWew(x2,y2,5,1.01,3)){
- cout << "Punkt (1.01,3) znajduje sie wew. figury" <<endl;
- }
- else{
- cout << "Punkt (1.01,3) znajduje sie zew. figury" <<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement