JStefan

[Laboratoriski] Presek na otsechki

Feb 25th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. typedef struct tocka {
  4.     float x;
  5.     float y;
  6. } tocka;
  7.  
  8. typedef struct otsecka {
  9.     tocka s;
  10.     tocka e;
  11. } otsecka;
  12.  
  13. int se_secat(otsecka o1, otsecka o2) {
  14.     // vashiot kod ovde
  15.      int seSecat = 0;
  16.    
  17.     float k1 = (o1.s.y - o1.e.y) / (o1.s.x - o1.e.x);
  18.     float k2 = (o2.s.y - o2.e.y) / (o2.s.x - o2.e.x);
  19.    
  20.     float b1 = o1.s.y - k1*o1.s.x;
  21.     float b2 = o2.e.y - k2*o2.e.x;
  22.    
  23.     if(k1 == k2)
  24.     {
  25.         float levaTocka = o1.s.x;
  26.         float des = o2.e.x;
  27.        
  28.         return levaTocka >= des;
  29.     }
  30.    
  31.    
  32.     float finalno_k = k1-k2;
  33.     float finalno_b = b1-b2;
  34.    
  35.     float res = -finalno_b/finalno_k;
  36.    
  37.     seSecat = ((res>=o1.s.x&&res <= o1.e.x)&&(res>= o2.s.x&&res <= o2.e.x));
  38.     return seSecat;
  39. }
  40.  
  41. int main() {
  42.     double x1, y1, x2, y2;
  43.     scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
  44.     tocka t1 = { x1, y1 };
  45.     tocka t2 = { x2, y2 };
  46.     otsecka o1 = { t1, t2 };
  47.     scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
  48.     tocka t3 = { x1, y1 };
  49.     tocka t4 = { x2, y2 };
  50.     otsecka o2 = { t3, t4 };
  51.     printf("%d\n", se_secat(o1, o2));
  52.     return 0;
  53. }
Add Comment
Please, Sign In to add comment