fork download
  1. int polySides = 4;
  2. float polyX[] = {4,4,15,15};
  3. float polyY[] = {4,20,20,4};
  4.  
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. int main(){
  9. bool pointInPolygon(int,int) ;
  10.  
  11. for(int x=4;x<15;x++){
  12. for(int y=4;y<20;y++){
  13. cout<<pointInPolygon(x,y) ;
  14. }
  15. }
  16. } // End of Main()
  17.  
  18.  
  19.  
  20.  
  21. bool pointInPolygon(int x,int y) {
  22. int i, j=polySides-1 ;
  23. bool oddNodes=false ;
  24.  
  25. for (i=0; i<polySides; i++) {
  26. if (polyY[i]<y && polyY[j]>=y || polyY[j]<y && polyY[i]>=y) {
  27. if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x) {
  28. oddNodes=!oddNodes; }
  29. }
  30. j=i; }
  31.  
  32. return oddNodes;
  33. }
Success #stdin #stdout 0.01s 2680KB
stdin
Standard input is empty
stdout
00000000000000000111111111111111011111111111111101111111111111110111111111111111011111111111111101111111111111110111111111111111011111111111111101111111111111110111111111111111