0

http://jsfromhell.com/math/is-point-in-polyから取得したこの Javascript コードを、coffeescriptで書き直そうとしました。ポイントがポリゴン内にあるかどうかを検出し、完全に正常に機能しますが、エレガントなコーヒースクリプトの翻訳がどうなるかわかりませんか?

function isPointInPoly(poly, pt){
  for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
    ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y))
    && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
    && (c = !c);
return c;
}
4

2 に答える 2

1

私は一緒に行きます

isPointInPoly = (poly, pt) ->
  c = false
  j = poly.length - 1
  for b, i in poly
    a = poly[j]
    if ((a.y <= pt.y && pt.y < b.y) || (b.y <= pt.y && pt.y < a.y)) && (pt.x < (b.x - a.x) * (pt.y - a.y) / (b.y - a.y) + a.x)
      c = not c
    j = i
  c

(デモコンパイル)

于 2013-09-30T15:50:51.190 に答える