これは私が達成したいものです。どのようなスペースで2つの円に触れる最短の線を作るには?
パラメータは、両方の円の半径であり、X - センター、及びY - センター。線を作る関数はline(x1, y1, x2, y2)
です。
ここではJavaScriptを使用しています。
var lineX1 = circleX1 + (circleRadius1 * Math.sin(Math.atan2(circleY2 - circleY1, circleX2 - circleX1)));
var lineY1 = circleY1 + (circleRadius1 * Math.cos(Math.atan2(circleY2 - circleY1, circleX2 - circleX1)));
var lineX2 = circleX2 - (circleRadius2 * Math.sin(Math.atan2(circleY1 - circleY2, circleX1 - circleX2)));
var lineY2 = circleY2 - (circleRadius2 * Math.cos(Math.atan2(circleY1 - circleY2, circleX1 - circleX2)));
line(lineX1, lineY1, lineX2, lineY2);
ただし、このようになります。
Math.atan()(つまり1つのパラメータのメソッド)を呼び出していますが、Math.atan2()(つまり2つのパラメータのメソッド)を呼び出そうとしていますか? – Welbog
それはタイプミスで、私は 'Math.atan2()'も使用しました。ごめんなさい! – notalentgeek