誰かが私を助けてくれることを願っています。私はゲーム用のLuaスクリプト用のコードを書くように求められています。まず私はルアスクリプタではなく、私は反抗的に数学者ではない。ランダムな点を平行四辺形で生成する関数を作成する
私がする必要があるのは、平行四辺形内にランダムな点を生成することです。時間がたつにつれて平行四辺形全体が塗りつぶされます。私はスクリプティングで試したことがあり、平行四辺形(四角形)を上下左右に90度の角度で配置して成功しました。私の問題は、平行四辺形を回転させたときに起こります。
画像でわかるように、地図エリアの中央にある座標によって物事がさらに悪化し、平行四辺形は地図エリア内のどこにでも配置できます。平行四辺形自体は、start_XとStart_Y、Height_XとHeight_Y、そしてWidth_XとWidth_Yの3つの座標で定義されます。生成されるランダムな点は、位置または方向に関係なく、これらの座標の境界内にある必要があります。
Map coordinates and example parallelogram
座標の一例である...
Start_X = 122.226 Start_Y = -523.541
Height_X = 144.113 Height_Y = -536.169
Width_X = 128.089 Width_Y = -513.825
私のスクリプトのテストでは、小数点以下は、最終的な結果に影響を及ぼさないように見えるので、小数点以下を0.5に減らしました。また、実際には、最終使用時に開始幅と高さは任意の向きにすることができる。
私はこの作業をするために何が必要なのか説明するために患者がいるのですか?私の数学はかなり基本的なので、優しくしてください。
お返事ありがとうございます。擬似コード
a= random number with 0<=a<=1
b= random number with 0<=b<=1
x= Start_X + a*(Width_X-Start_X) + b*(Height_X-Start_X)
y= Start_Y + a*(Width_Y-Start_Y) + b*(Height_Y-Start_Y)
で イアン
こんにちはピーター、あなたの返信をありがとうが、私は出生時に数学の頭に恵まれず、私は最初の2行と混同しています。 aとbは0または1のどちらでもかまいませんか、start_xとheight_xの間のような座標値の間に乱数を生成する必要がありますか?正直なところ私は0 <= a <= 1ビットを得られません。説明してください。 – Ian
aの乱数を生成する必要があります。この乱数は、0.0から1.0の範囲の任意の数(たとえば0.0 0.23,0.7など)です。これを行うための標準関数は、math.random() –