Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#绘制雷达缩放和定心问题图_C#_Math_Coordinates - Fatal编程技术网

C#绘制雷达缩放和定心问题图

C#绘制雷达缩放和定心问题图,c#,math,coordinates,C#,Math,Coordinates,我想在图片盒上画一个雷达。画分数没问题,但我正在努力学习基础数学。也许我太累了 我有一个200x200的图片盒。我在picturebox(4x4)中加载了一个小的居中图像,它象征着当前的玩家 我已经构建了一个名为 油漆雷达(int meX、int meY、int enemyX、int enemyY) 参数可以有以下值:meX=27000、meY=30000、enemyX=26000、enemyY=28000 理想的结果是有敌人围绕着我,我总是在图片框中居中。我必须计算什么才能将meX和meY置于

我想在图片盒上画一个雷达。画分数没问题,但我正在努力学习基础数学。也许我太累了

我有一个200x200的图片盒。我在picturebox(4x4)中加载了一个小的居中图像,它象征着当前的玩家

我已经构建了一个名为

油漆雷达(int meX、int meY、int enemyX、int enemyY)

参数可以有以下值:meX=27000、meY=30000、enemyX=26000、enemyY=28000

理想的结果是有敌人围绕着我,我总是在图片框中居中。我必须计算什么才能将meX和meY置于图片框的中心


感谢

< P>假定玩家处于敌人的中间,根据他们的位置和玩家的位置之间的差异画出敌人的中心。p> 想一想,就好像玩家是起源一样。通过从敌人的位置中减去玩家的位置,你将敌人的位置放入一个以玩家为中心的坐标系中。这就是你的雷达

例如:

// Get differences. d is short for difference (or delta :)).
int dy = enemyY - meY;
int dx = enemyX - meX;

// Then scale the dy and dx values so they fix in the picture box.
dy *= scaleY;
dx *= scaleX;
然后在图片框上画出(dx,dy)处的敌人

比例应为如下公式:

scaleY = (1 / maxDetectionDistance) * (heightOfRadarBox / 2);
scaleX = (1 / maxDetectionDistance) * (widthOfRadarBox / 2);
任何超过雷达极限的东西都不应该被提取

// Don't draw if enemy is too far away for radar to pick up.
if (Math.Abs(dy) > maxDetectionDistance || Math.Abs(dx) > maxDetectionDistance)
{
    return;
}

如果您首先假设
meX,meY
为0,0,那么您不能找到
enemyX,enemyY
的差异,然后相应地缩放以适应图片框吗?…或者您可以使用和平移/缩放图形,然后在其原始坐标处绘制所有内容。