using Microsoft.DirectX.Direct3D;
struct Voxel
{
public Vector3 p
public Voxel(float _x, float _y, float _z)
{
p = new Vector3(_x, _y, _z);
}
}
List<Voxel> myDataList = new List<Voxel>();
いくつかのデータメソッドを追加した後、最終的にmyDataList
以下のようなものになります:
myDataList[0] - { X: 164 , Y: 59 , Z: 120 }
myDataList[1] - { X: 146 , Y: 63 , Z: 120 }
myDataList[2] - { X: 192 , Y: 59 , Z: 120 }
myDataList[3] - { X: 196 , Y: 79 , Z: 120 } //peak coordinate is here
myDataList[4] - { X: 110 , Y: 55 , Z: 120 }
上記の例では、myDataList[3] は Y 値が最大の 79 であるピーク座標です。
私の質問は、myDataList[3] が最高の Y 値を含むピーク座標であることを特定するにはどうすればよいですか?
最大Y値を取得するには、以下のようなことができることを知っています
float maxY = myDataList.Max(y => y.p.Y); //output = 79
しかし、私が欲しいのは、単に知っているのではなく、3D 座標 (X、Y、Z) です。maxY
* myDataList の順序は次の手順で重要になるため、Y 値と の降順でリストを並べ替えないでください。.First()