我使用Farseer Physics Engine进行泵模拟。 在那里,它们总是使用texture2d格式。 但是泵的形状只给出了Point(x,y)数组。
我想从那个点数组中创建polygon或texture2d。
PolygonTools.CreatePolygon方法需要int []和width,而不是point []。
我不知道如何通过int []和width来制作多边形。
请帮忙。
答案 0 :(得分:0)
所以你希望从数组创建一个texture2d ......嗯...我会尝试解释我将如何尝试这个,这不是工作示例只是提示如何做到这一点。
首先你需要找到with和height,所以找到max X和max Y来创建空白纹理。
Texture2D blankTexture = new Texture2D(GraphicsDevice, maxX, maxY, false, SurfaceFormat.Color);
然后遍历纹理并设置数组中的像素颜色
for(int i=0; i<blankTexture .width; i++)
{
for(int j=0; j<blankTexture .height; j++)
{
// pixel = texture.GetPixel(i, j);
// loop over array, and if pointX in array = i and pointY in array = j then
pixel.Color = Color.White; //
}
}
我认为这是相当昂贵的方式......但它可以工作。