我需要画单词"N"在画布中,但坐标是在矩阵中,我需要将这些值相乘,我尝试用多边形绘制结果并保存在点数组中。我该怎么做呢?所以我需要对这个矩阵做其他的运算,然后画出它的图
float[] wordN = { 0, 0 , 0.5f, 0 , 0.5f, 6.42f , 6, 0 , 6, 8 , 5.5f, 8 , 5.5f, 1.58f, 0, 8 };
private void panelNOriginal_Paint(object sender, PaintEventArgs e){
float[,] matriz = new float[2, 8];
PointF[] prueba = new PointF[16];
int conta = 0;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 8; j++)
{
matriz[i, j] = wordN[conta] * 15;
conta++;
prueba[i] = new PointF(wordN[i], wordN[j]);
}
}
e.Graphics.DrawPolygon(new Pen(Color.Black), prueba);
} ```
我猜你想做这样的事情:
var points = new List<PointF>();
for(var i = 0; i < wordN.Length/2; i++){
var x = wordN[i];
var y = wordN[i*2];
points.Add(new PointF(x * 15, y * 15));
}
e.Graphics.DrawPolygon(Pens.Black, points.ToArray());
假设原始数组包含像x0, x1,…y0, y1 . .你可以把它转换成一个单循环的点列表,并在这一点上做任何缩放。我不确定这个矩阵有什么用。
如果原始列表包含交错坐标,即x0, y0, x1, y1…,则将循环改为i < wordN.Length-1; i+=2
, y-index改为i+1
。