Я работаю над проектом, в котором мне нужно взаимодействовать с 3D-объектами с помощью сустава руки, теперь я делаю это, используя формулу расстояния, но тем не менее. . я использую ручное соединение (X, Y, Z) и использую формулу для преобразования их в трехмерное пространство, чтобы иметь возможность взаимодействовать с моделями.
Вместо использования формулы для преобразования. . мне действительно нужно использовать функцию MapSkeletalpoint для раскрашивания точки изображения??
Чтобы дать представление о том, что я делаю:
var rightHands = playerSkeleton.Joints[JointType.HandRight];
var rightHandsX = rightHands.Position.X;
var rightHandsY = rightHands.Position.Y;
var rightHandsZ = rightHands.Position.Z;
HandX = rightHands.Position.X;
HandY = rightHands.Position.Y;
HandZ = rightHands.Position.Z;
foreach (_3DModel s in Solar)
{
x_mod = (float)Math.Floor(((HandX * 0.5f)) * maxWidth);
y_mod = (float)Math.Floor(((HandY * -0.5f)) * maxHeight);
z_mod = (float)Math.Floor((HandZ) / 4 * 20000);
if (Math.Sqrt(Math.Pow(x_mod - s.modelPosition.X, 2) + Math.Pow(y_mod- s.modelPosition.Y, 2) + Math.Pow(z_mod - s.modelPosition.Z,2)) < 20)
{
sound.Play();
Console.WriteLine("1" + "handx:" + x + "," + " " + "modelPos.X:" + s.modelPosition.X + "," + " " + "handY:" + y + "modelPos.Y:" + s.modelPosition.Y);
}