Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //check_line(x,y,r,line ID);
  2. //returns:
  3. // r0 > general interesection of areas:
  4. //      0 = no intersection
  5. //      1 = regular interection
  6. // r1 > x of regular intersection
  7. // r2 > y of regular intersection
  8. var i, m, a; i=argument3;
  9. if (argument1+argument2<min(global._ly1[i],global._ly2[i])) || (argument1-argument2>max(global._ly1[i],global._ly2[i])) ||
  10.    (argument0+argument2<min(global._lx1[i],global._lx2[i])) || (argument0-argument2>max(global._lx1[i],global._lx2[i]))  {
  11.     _r0 = 0;
  12.     exit;
  13. }
  14. m = point_direction(global._lx1[i],global._ly1[i],global._lx2[i],global._ly2[i]);
  15. line_intersect(global._lx1[i],global._ly1[i],
  16.                global._lx2[i],global._ly2[i],
  17.                argument0,argument1,argument0+lengthdir_x(5,m+90),argument1+lengthdir_y(5,m+90));
  18. if (yy<min(global._ly1[i],global._ly2[i])) || (yy>max(global._ly1[i],global._ly2[i])) ||
  19.    (xx<min(global._lx1[i],global._lx2[i])) || (xx>max(global._lx1[i],global._lx2[i]))  {
  20.    if (point_distance(global._lx1[i],global._ly1[i],argument0,argument1)<argument2) {
  21.         _r0 = 1;
  22.         _r1 = global._lx1[i]+lengthdir_x(argument2,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
  23.         _r2 = global._ly1[i]+lengthdir_y(argument2,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
  24.         _r3 = global._lx1[i];
  25.         _r4 = global._ly1[i];
  26.         exit;
  27.    }
  28.    if (point_distance(global._lx2[i],global._ly2[i],argument0,argument1)<argument2) {
  29.         _r0 = 1;
  30.         _r1 = global._lx2[i]+lengthdir_x(argument2,point_direction(global._lx2[i],global._ly2[i],argument0,argument1));
  31.         _r2 = global._ly2[i]+lengthdir_y(argument2,point_direction(global._lx2[i],global._ly2[i],argument0,argument1));
  32.         _r3 = global._lx2[i];
  33.         _r4 = global._ly2[i];
  34.         exit;
  35.    }
  36.    _r0 = 0;
  37.    exit;
  38. }
  39. if (point_distance(argument0,argument1,xx,yy)>argument2) {
  40.     _r0 = 0;
  41.     exit;
  42. }
  43. a = angle_diff(m,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
  44. if (a<0) {
  45.     _r0 = 1;
  46.     _r1 = xx+lengthdir_x(argument2,m+90);
  47.     _r2 = yy+lengthdir_y(argument2,m+90);
  48.     _r3 = xx; _r4 = yy;
  49. } else {
  50.     _r0 = 1;
  51.     _r1 = xx+lengthdir_x(argument2,m-90);
  52.     _r2 = yy+lengthdir_y(argument2,m-90);
  53.     _r3 = xx; _r4 = yy;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement