在 WPF 应用程序中使用 SharpGL 库,如何绘制具有正确大小和像素填充的线?以及如何确保在调整窗口大小时这条线不会拉伸?
您可以以某种方式使用 Perspective 进行所需的缩放?例如 x3 或 x0.5
private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args) {
OpenGL gl = args.OpenGL;
// Сбрасываем цвета и глубины
gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
gl.LoadIdentity(); // Сбрасываем матрицу
gl.Translate(0.0f, 0.0f, -2.5f);
gl.Begin(OpenGL.GL_LINES);
gl.Color(0.0f, 1.0f, 0.0f);
gl.Vertex(1.0f, 1.0f);
gl.Vertex(-1.0f, 1.0f);
gl.End();
gl.Flush();
}
private void OpenGLControl_Resized(object sender, OpenGLEventArgs args) {
OpenGL gl = args.OpenGL;
// Сброс матрицы проекции
gl.MatrixMode(OpenGL.GL_PROJECTION);
gl.LoadIdentity();
// Рассчитать соотношение сторон окна
gl.Perspective(45.0f, (float)gl.RenderContextProvider.Width / (float)gl.RenderContextProvider.Height, 0.1f, 100.0f);
// Устанавливаем матрицу представления
gl.MatrixMode(OpenGL.GL_MODELVIEW);
}
我认为这段代码会帮助你:
通常,图书馆的编写者总会有很好的例子。这是该项目官方存储库中示例的链接。
UPD:xaml 代码:
我希望现在一切都清楚了。