1. 屏幕坐标系与图形渲染的底层逻辑
第一次接触屏幕坐标系时,我盯着那个Y轴向下的坐标系看了半天——这和我学了十几年的数学坐标系完全相反!后来在调试一个按钮点击事件时,才发现这种反直觉的设计背后藏着图形系统的进化史。早期CRT显示器电子束就是从左上角开始逐行扫描,这个物理特性直接决定了屏幕坐标系的定义方式。
现代图形系统中,屏幕坐标系(Screen Coordinates)是以像素为单位的二维离散坐标系。在Windows和大多数图形API中:
- 原点(0,0)固定在屏幕左上角
- X轴向右递增(与数学坐标系一致)
- Y轴向下递增(与数学坐标系相反)
# Pygame中的坐标系示例
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
# 在(400,300)位置画红色像素点
screen.set_at((400, 300), (255,0,0))
这种设计带来的直接影响是:当我们需要在屏幕上绘制数学函数图像时,必须进行Y轴翻转。去年开发教育软件时,我就遇到过学生函数图像上下颠倒的问题——因为忘记做坐标系转换,导致sin曲线看起来像在倒立行走!
2. 世界坐标系:虚拟空间的统一参照系
在三维图形编程中,世界坐标系(World Coordinates)就像上帝视角的全局GPS系统。还记得第一次用OpenGL创建旋转立方体时,我花了三天才明白:为什么明明设置了正确的顶点坐标,物体却显示在奇怪的位置——原来是没有理解模型矩阵的作用。
世界坐标系的关键特性包括:
- 使用右手坐标系(Z轴朝向观察者)
- 单位可自定义(米、厘米等任意物理单位)
- 是所有物体坐标的基准参考系
// OpenGL中的世界坐标变换
glm::mat4 model = glm::ma


1063

被折叠的 条评论
为什么被折叠?



