본문 바로가기
Frontend/Javascript

boundary 안에 해당 좌표가 있는지 확인

by YERIEL_염주둥 2023. 12. 13.
728x90

Canvas로 영역을 만들고 그 영역 안에 해당 좌표가 있는지 확인하는 알고리즘

먼저 확인 하고 싶은 좌표를 배열로 선언합니다. 
point[0] = x 좌표, point[1] = y좌표

var point = [2,4];

 

영역 또한 이차배열로 선언합니다. 

var vs = [
  [94, 119],
  [94, 267],
  [285, 267],
  [285, 119],
]
  const inside = (point, vs) => {
    var x = point[0],
      y = point[1];

    var inside = false;

    for (var i = 0, j = vs.length - 1; i < vs.length; j = i++) {
      var xi = vs[i][0],
        yi = vs[i][1];
      var xj = vs[j][0],
        yj = vs[j][1];

      var intersect =
        yi > y != yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;
      if (intersect) inside = !inside;
    }
    return inside;
  };

 

있으면 true, 없으면 false 반환

 


[출처]

https://webinstory.tistory.com/entry/%EC%B9%B4%EC%B9%B4%EC%98%A4%EB%A7%B5-%ED%8F%B4%EB%A6%AC%EA%B3%A4-%EC%A7%80%EB%8F%84-%EB%82%B4%EB%B6%80%EC%97%90-%EC%A2%8C%ED%91%9C%EA%B0%80-%EC%9E%88%EB%8A%94%EC%A7%80-%ED%99%95%EC%9D%B8

반응형

댓글