文法のエラーはありませんが、数学的/論理的な面では何かがあります。だから私は円から線を引いて、始点と終点だけを与えようとしています。私の問題は、ラインの傾きを得ることにあります。ここでスロープを取得し、ラインを描くための私のコードは次のとおりです。円の外に線を描く
public void setVectorX(){
xVector = difX/difY;
}
public void setVectorY(){
yVector = difY/difX;
}
public void makeLine(){
setVectorX();
setVectorY();
double prevX;
double prevY;
for(int i = 0; i < d; i++){
if(i == 0){
prevX = startX;
prevY = startY;
} else {
Circle prev = line.get(i-1);
prevX = prev.getX();
prevY = prev.getY();
}
Circle circ = new Circle(prevX+xVector,prevY+yVector,thickness,color);
line.add(circ);
}
}
これで問題がされ、エンドポイントは、かつて同じ軸の上であることになる近い、のそれぞれの間で大きなスペースがありますサークルは実際に描画されなくなります。誰もがこれを行うためのより効果的な方法を知っているので、ラインは時間の100%をどのように塗るか?
ありがとうございます!
相続人は何それは次のようになります。
する相続人は、それが最後に軸の一つとしてどのように見えるか、スタートと同じ軸に近づく:
要求されたとおりにd、difX、およびdifYを宣言するコードは次のとおりです。
public Line(int nStartX, int nStartY, int nEndX, int nEndY, int nThickness,Color nColor){
startX = nStartX;
startY = nStartY;
endX = nEndX;
endY = nEndY;
thickness = nThickness;
d = Math.sqrt(Math.pow((startX-endX), 2)+Math.pow((startX-endX), 2));
color = nColor;
difX = endX-startX;
difY = endY-startY;
makeLine();
}
一部の画像が本当に役立つだろう追加するときに、この多分稀のものであろう。あなたが知っているように、写真を見せているように、「これは今見ている方法です」。 – GhostCat
実際に解決策を見つけるにはあまりにも多くのコードがありません。 'xVector'' yVector'はintとして宣言されていませんか? – StephaneM
これらはdouble –