コードは次のとおりです。
Raphael('holder', 400, 400, function() {
this.circle(200, 200, 100)
this.circle(200, 200, 140)
this.circle(0, 0, 1).translate(300, 200).scale(10).attr({fill: 'green'})
this.circle(300, 200, 5).attr({fill: 'red'})
this.path('M300,200 L400, 200').attr({stroke: 'red', 'stroke-width': 3})
this.path('M0,0 L1,0').attr({stroke: 'blue'}).translate(300, 200).scale(100, 100)
})
Chrome での結果は次のとおりです。
青い線M0 0
が 300,200 ではないことに注意してください!
私が期待しているのは、2 つのパスが一致することです。私translate(300, 200)
が期待するM0, 0
と、ペンは 300,200 になります。しかし、そうではありません!結果のパスの中心が 300,200 で巻き上げられるように、ペンを別の場所に配置します。
では、どうすればパスを作成し、それがM0 0
完全に紙の中に収まるように配置できますか?
(または、パスの中心を計算し、その中心によってすべてのパス値をオフセットする必要がありますか?「はい」とは言わないでください)