私はそれらを1軸での位置を変更/翻訳して分けた場合、結果は私が探しているものではありません。道路マーキングのためにthree.jsで平行カーブを作成する方法は?
コードはシンプルで、中央のパスを作るためのベジェと、側面のための他の素材とのクローンです。
var bezier = new THREE.CubicBezierCurve3(
new THREE.Vector3(initx, inity, 0),
new THREE.Vector3(cp1x, cp1y, 0),
new THREE.Vector3(cp2x, cp2y, 0),
new THREE.Vector3(finalx, finaly, 0)
);
var curvePath = new THREE.CurvePath();
curvePath.add(bezier);
var path = curvePath.createPointsGeometry(5);
path.computeLineDistances();
var lineMat = new THREE.LineDashedMaterial({ color: 0xFFFFFF,
dashSize: 3,
gapSize: 2,
linewidth: 10});
var curveLine = new THREE.Line(path, lineMat);
curveLine.rotation.set(-Math.PI/2,0,0);
curveLine.position.y = 0.1;
var leftLine = curveLine.clone();
leftLine.material = matLine;
var rightLine = curveLine.clone();
rightLine.material = matLine;
leftLine.translateX(-3.5);
rightLine.position.set(3.5,0,0);
scene.add(curveLine);
scene.add(leftLine);
curveLine.add(rightLine);
そして、これは私が探しています何のいくつかの例です:
最終2枚の画像がBezier.jsライブラリからです。
私はを適用することが解決策になるかもしれません法線最初の1のを使用して別のラインを描く曲線に、またはをオフセットと思いますが、私はそれを行うには便利な何かを見つけることができませんドキュメンテーション。 私は接線軸のような距離から線を描くこともできると思いますが、それはもっと簡単な方法でしょうか?
私はthisを見ましたが、それは直線です。
実際の例[ここ](https://codepen.io/brunoimbrizi/pen/VYEWgY)のコードペンがあります。説明は[こちら](http://brunoimbrizi.com/unbox/2015/03/offset-curve/)です。 codepen上のvector2追加の多くはすでにthree.jsの一部として利用可能です。 – Radio
@ラジオそれは最高です。 –
@Radioそれは本当に素晴らしいですが、私は一見してそれを解決しようとしますが、そういう操作をしても簡単な "ネイティブ"な方法でthree.jsを探していました。 – soiber