WebGLの地球とd3.geo.satellite投影を組み合わせようとしています。THREE.jsとd3.jsを同期する
私は2つの投影を重ね合わせて回転を同期させることができましたが、ズームを同期するのに問題があります。サイズを合わせるためにそれらを同期させると、WebGL投影は変形されますが、d3.geo.satelliteは同じままです。私はprojection.scale、projection.distanceのさまざまな組み合わせをあまり成功させずに試しました。
ここにJSフィドル(リソースを読み込むのに少し時間がかかる)です。あなたはそれを回転させるためにドラッグすることができます(うまくいきます)。しかし、ズームイン(マウスホイールを使用)すれば、問題を見ることができます。スケール関数 -
https://jsfiddle.net/nxtwrld/7x7dLj4n/2/
重要なコードは、スクリプトの最下部にあります。私はあなたのjsfiddleにチェックし、いずれかのWebGLの土を用いていない
function scale(){
var scale = d3.event.scale;
var ratio = scale/scale0;
// scale projection
projection.scale(scale);
// scale Three.js earth
earth.scale.x = earth.scale.y = earth.scale.z = ratio;
}
この問題も発生しますが、WebGL Earthは使用しません。代わりにThree.jsを使用します。何か解決策はありますか? –