1

現在、d3 スクリプトでドラッグ可能な動作を作成しようとしています。ここでマイク・ボストックの例を研究しています:http://bl.ocks.org/mbostock/1557377

これは問題の機能です:

function dragmove(d) {
  d3.select(this)
      .attr("cx", d.x = Math.max(radius, Math.min(width - radius, d3.event.x)))
      .attr("cy", d.y = Math.max(radius, Math.min(height - radius, d3.event.y)));
}

これは本当に混乱しているようです。

  • この Math.max 機能と Math.min 機能が使用されるのはなぜですか?
4

1 に答える 1

2

各円のドラッグ範囲を制限するために使用されています。

x は範囲に制限されています[radius, width-radius]

y は範囲に制限されています[radius, height-radius]

これらはすべて、適切に変換された svgg要素内にあるため、x と y は各セルに対して相対的です。したがって、ドラッグすると、円の端がセルの境界を越えます。

于 2013-02-21T19:11:07.897 に答える