C# 转角的拉线偏移量

C# 转角的拉线偏移量,c#,.net,graphics,gdi+,C#,.net,Graphics,Gdi+,我有一个程序,允许用户操纵一条不断增长的线(Tron游戏),但我遇到的问题是,当一个玩家转弯时,角的显示方式有问题。对于1px宽的笔,没有问题,但当笔的尺寸增大时,问题变得更加明显 代码如下: canvas = this.CreateGraphics(); foreach (LightBike b in bikes) //draw bikes { canvas.DrawLine(new Pen(b.color, BIKE_SIZE), b.getPrevi

我有一个程序,允许用户操纵一条不断增长的线(Tron游戏),但我遇到的问题是,当一个玩家转弯时,角的显示方式有问题。对于1px宽的笔,没有问题,但当笔的尺寸增大时,问题变得更加明显

代码如下:

    canvas = this.CreateGraphics();
    foreach (LightBike b in bikes) //draw bikes
    {
        canvas.DrawLine(new Pen(b.color, BIKE_SIZE), b.getPreviousLocation(), b.location);
        grid[b.location.X, b.location.Y] = bikes.IndexOf(b)+1;
    }
我将碰撞存储在一个2D网格中,该网格的大小与碰撞本身的大小相同。在每个位置,我给出数组中自行车的值

在这里可以看到15px宽:

这是因为直线在您选择的点结束。修复很简单-只需告诉
在每一行的开始和结束处画一个方盖:

canvas.DrawLine(new Pen(b.color, BIKE_SIZE) {
    EndCap = System.Drawing.Drawing2D.LineCap.Square,
    StartCap = System.Drawing.Drawing2D.LineCap.Square
}, b.getPreviousLocation(), b.location);

不要使用DrawLine命令绘制连接线。如果使用DrawLines命令,而不是在循环中一个接一个地绘制线条,那么线条看起来会更好。
而且:一旦你开始使用alpha通道,即使是最好的线头也会看起来很难看。

这是GDI+/Graphics,还是某个实际的.NET画布库?.NET Graphics类(我更新了原始帖子)@IanMcCullough-I有点像缩进的角:)请不要在标题中添加c#NET。这就是标签的用途