我有一个具有X和Y坐标的网格。在这个网格上,我有一个起点,我想让所有附近的单元格都在一定的半径内。
我做了以下函数,每个方向+1并返回光斑。
public List<Point> GetLocationsStraightLine(Point fromLocation, int Distance)
{
var nearbySpots = new List<Point>();
int StartDistance = 1;
while (StartDistance < Distance)
{
nearbySpots.Add(new Point(fromLocation.X, (short)(fromLocation.Y - StartDistance)));
nearbySpots.Add(new Point((short)(fromLocation.X + StartDistance), fromLocation.Y));
nearbySpots.Add(new Point(fromLocation.X, (short)(fromLocation.Y + StartDistance)));
nearbySpots.Add(new Point((short)(fromLocation.X - StartDistance), fromLocation.Y));
StartDistance++;
}
return nearbySpots;
}
这将从我的起点开始以直线返回所有点。但是,我也想抓住中间的地方。
这是我目前得到的(对不起的图像,抱歉)
但是我希望能够输入2的距离并获得开始位置周围的完整正方形。
what i want full square with diagnonal
所以我问有什么简单的方法可以获取对角线,而不仅仅是起点呢?
答案 0 :(得分:0)
由于它是矩形,因此可以使用非常简单的方法。假设rows+= "<tr class='row'>" +
"<td class='name'>" + awayTeam + "</td>" +
"<td class='score'>" + aScore + "</td>" +
"<td class='name'>" + homeTeam + "</td>" +
"<td class='score'>" + hScore + "</td>" +
"<td class='period'>" + currentPeriod + "</td>" +
"</tr>"
table = "<table class='data'>" + rows + "</table>"
return table
始终为正:
"<td class="${(aScore>hScore) ? 'winning' : 'name'}">" + awayTeam + "</td>"
想法是从左上角开始,并逐行添加矩形中的每个点,在右下角结束。