direct3d没法直接设置绘制直线的宽度,可以通过两个三角形组成矩形来模拟带宽度的直线,计算方法如下:
//----------设置直线的端点和宽度
float line_start[] = { 0.5f, 0.5f };
float line_end[] = { -0.5f, -0.5f };
float line_width = 0.2;
float line_width2 = line_width / 2;
float line_angle = atan2f(line_end[1] - line_start[1], line_end[0] - line_start[0]);
float x_inc = line_width2 * sin(line_angle), y_inc= line_width2 * cos(line_angle);
float line_end11[] = { x_inc + line_end[0], -y_inc + line_end[1] };
float line_end12[] = { -x_inc + line_end[0], y_inc + line_end[1] };
float line_end21[] = { x_inc + line_start[0], -y_inc + line_start[1] };
float line_end22[] = { -x_inc + line_start[0], y_inc + line_start[1] };
float vertexData[] = { // x, y, r, g, b, a
line_end22[0], line_end22[1], 1.f, 0.f, 0.f, 1.f,
line_end12[0], line_end12[1], 1.f, 0.f, 0.f, 1.f,
line_end11[0], line_end11[1], 1.f, 0.f, 0.f, 1.f,
line_end22[0], line_end22[1], 1.f, 0.f, 0.f, 1.f,
line_end11[0], line_end11[1], 1.f, 0.f, 0.f, 1.f,
line_end21[0], line_end21[1], 1.f, 0.f, 0.f, 1.f,
};