Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //check_line(x,y,r,line ID);
- //returns:
- // r0 > general interesection of areas:
- // 0 = no intersection
- // 1 = regular interection
- // r1 > x of regular intersection
- // r2 > y of regular intersection
- var i, m, a; i=argument3;
- if (argument1+argument2<min(global._ly1[i],global._ly2[i])) || (argument1-argument2>max(global._ly1[i],global._ly2[i])) ||
- (argument0+argument2<min(global._lx1[i],global._lx2[i])) || (argument0-argument2>max(global._lx1[i],global._lx2[i])) {
- _r0 = 0;
- exit;
- }
- m = point_direction(global._lx1[i],global._ly1[i],global._lx2[i],global._ly2[i]);
- line_intersect(global._lx1[i],global._ly1[i],
- global._lx2[i],global._ly2[i],
- argument0,argument1,argument0+lengthdir_x(5,m+90),argument1+lengthdir_y(5,m+90));
- if (yy<min(global._ly1[i],global._ly2[i])) || (yy>max(global._ly1[i],global._ly2[i])) ||
- (xx<min(global._lx1[i],global._lx2[i])) || (xx>max(global._lx1[i],global._lx2[i])) {
- if (point_distance(global._lx1[i],global._ly1[i],argument0,argument1)<argument2) {
- _r0 = 1;
- _r1 = global._lx1[i]+lengthdir_x(argument2,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
- _r2 = global._ly1[i]+lengthdir_y(argument2,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
- _r3 = global._lx1[i];
- _r4 = global._ly1[i];
- exit;
- }
- if (point_distance(global._lx2[i],global._ly2[i],argument0,argument1)<argument2) {
- _r0 = 1;
- _r1 = global._lx2[i]+lengthdir_x(argument2,point_direction(global._lx2[i],global._ly2[i],argument0,argument1));
- _r2 = global._ly2[i]+lengthdir_y(argument2,point_direction(global._lx2[i],global._ly2[i],argument0,argument1));
- _r3 = global._lx2[i];
- _r4 = global._ly2[i];
- exit;
- }
- _r0 = 0;
- exit;
- }
- if (point_distance(argument0,argument1,xx,yy)>argument2) {
- _r0 = 0;
- exit;
- }
- a = angle_diff(m,point_direction(global._lx1[i],global._ly1[i],argument0,argument1));
- if (a<0) {
- _r0 = 1;
- _r1 = xx+lengthdir_x(argument2,m+90);
- _r2 = yy+lengthdir_y(argument2,m+90);
- _r3 = xx; _r4 = yy;
- } else {
- _r0 = 1;
- _r1 = xx+lengthdir_x(argument2,m-90);
- _r2 = yy+lengthdir_y(argument2,m-90);
- _r3 = xx; _r4 = yy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement