Advertisement
BORUTO-121

komplanarneTacke

Sep 16th, 2021
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. struct Tacka3d {
  6.   double x,y,z;
  7. };
  8.  
  9. int jesu_jednaki(double broj1, double broj2, double eps){
  10.   return (fabs(broj1-broj2)<=eps*(broj1+broj2));
  11. }
  12.  
  13. int preklapanje_tacaka(struct Tacka3d A, struct Tacka3d B){
  14.   return (A.x==B.x) && (A.y==B.y) && (A.z==B.z);
  15. }
  16.  
  17. double mjesoviti_proizvod(struct Tacka3d vec1, struct Tacka3d vec2, struct Tacka3d vec3){
  18.   return vec1.x*vec2.y*vec3.z + vec1.y*vec2.z*vec3.x + vec1.z*vec2.x*vec3.y
  19.     -(vec3.x*vec2.y*vec1.z + vec3.y*vec2.z*vec1.x + vec3.z*vec2.x*vec1.y);
  20. }
  21.  
  22. struct Tacka3d daj_vector(struct Tacka3d t1, struct Tacka3d t2){
  23.   return (struct Tacka3d){t2.x-t1.x,t2.y-t1.y,t2.z-t1.z};
  24. }
  25.  
  26. int komplanarne_tacke( struct Tacka3d t1, struct Tacka3d t2, struct Tacka3d t3, struct Tacka3d t4){
  27.   if(preklapanje_tacaka(t1,t2) && preklapanje_tacaka(t1,t3) && preklapanje_tacaka(t1,t4)) return 0;
  28.   if(jesu_jednaki(mjesoviti_proizvod(daj_vector(t1,t2),daj_vector(t1,t3),daj_vector(t1,t4)),0.,0.000001))return 1;
  29.   return -1;
  30. }
  31.  
  32. int main(){
  33.   struct Tacka3d t1={5,1,-5};
  34.   struct Tacka3d t2={0,1,0};
  35.   struct Tacka3d t3={1,0,0};
  36.   struct Tacka3d t4={1,-2,2};
  37.   printf("%d",komplanarne_tacke(t1,t2,t3,t4));
  38.   return 0;
  39. }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement