2017-06-14 6 views
-1

現在、私は研究を行い、シナリオをシミュレートするために私の理論をコーディングしています。見出し、開始点、およびポイント間の距離を指定した線に沿った点の取得

見出し、開始点、およびポイント間の距離を考慮して、指定された見出しに沿ったポイント(直線と正のx軸の間の角度)を徐々に見つける方法が必要です。新しいポイントは見出しの方向にあるべきです。私は何とかこれをやっていかなければならないのか、とにかく困難に直面しています。

十分な時間があれば、私は自分の考え方を思いつくことができますが、私のコーディングスキルを磨くことは私の最終的な結果ではなく、むしろ私の理論を実験するのにもっと時間を費やすことになります。解決策。私はCと協力しているので、Cのソリューションが優先され、他の言語で利用できるライブラリ関数を使用するソリューションではありません。

+0

どういうのですか?これはコーディングの問題ではなく、三角問題のように聞こえる。 – BurnsBA

+0

私はポイント(x、y)を持っています。私は見出しの角度Aを持っています。その見出しAに沿ってより多くの点の座標を点(x、y)から生成したいと思います。私はCで効率的なコードでこれを実装する方法に固執しています。 – GradStudent7902

+0

'x^2 + y^2 = r^2'、角度は'θ= tan^-1(y/x) 'です。そして、連続する点は、整数xに対して(x * r cosθ、x * r sinθ)となる。 – BurnsBA

答えて

0

一つの解決策(2)(2)、1/SQRTあなたは45度をしたいと言うことができ、単位ベクトルは < 1/SQRTだろう例えば、あなたが

をしたい方向の単位ベクトルを作成することです>。この距離は単位ベクトルから1になるので、1点あたりの距離でスケーリングできます。各点が1単位の1/3になるようにすると、単位ベクトルを掛けるだけで < 1 /(3sqrt(2))、1 /(3sqrt(2))>を得ることができます。ちょうどループを行う。あなたがその方向に10ポイントを望むならば、それはちょうどでしょう

unitvector = calculateUnitVector() 
unitvector *= distanceBetweenPoints 
for(i = 0 ; i < 10; i++){ 
    drawPoint(startPoint + unitVector * i) 
} 

私はこれが役立つことを望みます。

+0

ありがとうございます。これは確かに、コーディングの観点から問題をよりよく視覚化するのに役立ちます。 – GradStudent7902

+0

あなたが望むなら、もっと多くのコードを書くことができますが、この戦略はあなたが望むものを得ることができます。 –

+2

ありがとうございますが、それはあなたと私の怠け者の素敵です。もし私が失敗すれば、私は自分自身を試して、もう一度尋ねます。 – GradStudent7902

関連する問題