私はいくつかの線を、以下に掲示された画像のような点でグラフにプロットしています: 例えば、私が使用しているポイントA & Bの座標を持っているとしましょう行を設定します。私がしたいのは、x = 0からx = 100までの行の途中で、2つの欠落した「x」個の部分を追加することです。 私はラインをプロットするために、パスを.x
と.y
アクセサ関数を設定するd3.svg.line()
を使用して、としています。私が得たいものをラインまたはパスジェネレータに追加する機能はありますか? ヒントありがとう、ありがとう!与えられた点で行を延長する
5
A
答えて
8
これを行う方法はありませんが、自分で計算するのは難しいことではありません。
はあなたが現在このようA
とB
間に線を描画しているとしましょう:
var A = [15, 40], // x of 15 and y of 40
B = [85, 90],
line = d3.svg.line();
path.attr('d', line([A,B]))
あなたが考慮に直線の傾きを取って、0と100のxでp0
とp1
を計算する必要があり、線が通過する点。したがって、pointAtX()
関数は、パラメータA
とB
と必要なx座標をとり、適切なy座標を返します。
var A = [15, 40], // x of 15 and y of 40
B = [85, 90],
line = d3.svg.line(),
p0 = pointAtX(A, B, 0),
p1 = pointAtX(A, B, 100),
path.attr('d', line([p0,p1]))
興味深いことに、pointAtX()
の実装はd3.scale.linear
を利用するように書き換えることができます。
function pointAtX(a, b, x) {
var slope = (b[1] - a[1])/(b[0] - a[0])
var y = a[1] + (x - a[0]) * slope
return [x, y]
}
次に、あなたは、このような線を引くことができます。それは良いですが、涼しいの種類:
var interpolator = d3.scale.linear()
function pointAtX(a, b, x) {
interpolator
.domain([a[0], b[0]])
.range([a[1], b[1]]);
return [x, interpolator(x)];
}
関連する問題
- 1. Mathematicaで与えられた色で与えられたListPlotのすべての点を設定する
- 2. Python - 与えられた値から始まって与えられた長さでリストを作成する
- 3. 空白とベクトルの点を与えられたX長さの線を描く
- 4. ループ実行のために内部で遅延を与える
- 5. 与えられたベクトルに平行な点にベクトル/矢印をプロットする
- 6. 与えられた点から双曲線までの距離
- 7. 与えられた点からの線分上で垂直線
- 8. Pythonの与えられた点から近点を見つける方法
- 9. SymPy:与えられた変数で与えられた式を評価する
- 10. 2点を与えられたx切片を得る
- 11. 与えられた開始点で弧を描く方法は?
- 12. 与えられたプロパティでmatlabの均一分布遅延を生成する
- 13. 与えられた線に垂直な点を見つける
- 14. 与えられた遅延の後の返信
- 15. 与えられた3D点での3D曲線の接線
- 16. アンドロイドの与えられた点からのプロット/描画
- 17. 与えられた点にキャンバスを中心に置く
- 18. 与えられた3D頂点を持ち、VTKで変換する(2D)ポリゴン
- 19. 与えられた時点でスレッドを停止する方法は?
- 20. 与えられた(s、t)の角度で球上の点をプロットする
- 21. 与えられた2つの点から線を作成する
- 22. 2点が与えられた行ごとの平面の分離
- 23. 長所と与えられたカサンドラスキーマの短所
- 24. 与えられた長さの2つの整数のPythonパーミュテーション
- 25. 与えられた3点(中央部、開始、終了)
- 26. 2つの与えられたLinkedListの交点
- 27. 与えられたファイルから行を逆転させる
- 28. ある与えられた点からの距離に沿った線の中間点を見つける
- 29. 与えられた点を使ってカーブのコントロールポイントを計算する
- 30. 緯度と経度が与えられた2点の中間点
+1リニアスケールのアイデアについては。 IMHOこれはあなたがそれをしたいと思う方法です。 –
@LarsKotthoff縮尺のアプローチについての素敵な点は、他の種類の縮尺でも機能し、結果として得られる曲線が常にポイントAとBを通過することです。http://jsfiddle.net/meetamit/Lg7Md/1/ – meetamit