Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- typedef struct point {
- float x;
- float y;
- } point;
- typedef struct segment {
- point a;
- point b;
- } segment;
- typedef struct prava {
- float k;
- point t;
- } prava;
- int intersect(segment s1, segment s2) {
- prava p1,p2;
- p1.k=(s1.b.y-s1.a.y)/(s1.b.x-s1.a.x);
- p1.t=s1.a;
- p2.k=(s2.b.y-s2.a.y)/(s2.b.x-s2.a.x);
- p2.t=s2.a;
- if(p1.k==p2.k)
- return 0;
- point t1;
- t1.x=(p2.k * p2.t.x - p1.k *p1.t.x + p1.t.y - p2.t.y)/(p2.k - p1.k);
- t1.y=p1.k * (t1.x - p1.t.x) + p1.t.y;
- int s;
- s=(((t1.x<=s1.a.x)&&(t1.x>=s1.b.x))||((t1.x>=s1.a.x)&&(t1.x<=s1.b.x)))&&(((t1.x<=s2.a.x)&&(t1.x>=s2.b.x))||((t1.x>=s2.a.x)&&(t1.x<=s2.b.x)));
- return s;
- }
- int main (){
- float x1, y1, x2, y2;
- scanf("%f %f %f %f", &x1, &y1, &x2, &y2);
- point t1 = { x1, y1 };
- point t2 = { x2, y2 };
- segment o1 = { t1, t2 };
- scanf("%f %f %f %f", &x1, &y1, &x2, &y2);
- point t3 = { x1, y1 };
- point t4 = { x2, y2 };
- segment o2 = { t3, t4 };
- printf("%d\n", intersect(o1, o2));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement