在 Task D 绘图板基础上增加矩形对象选择、命中判断、选中对象改色与撤销最后一个对象。
橙色角点表示当前选中的矩形;重叠时选择最后绘制、位于最上层的矩形。
objects[] 中每项保存 {id, type, vertices, color},因此可重绘、查找和修改单个对象。hitRectangle() 用矩形四个顶点求 NDC 边界,并留出 0.015 容差;selectRectangleAt() 从数组末尾反向查找,保证重叠时选中最上层。applySelectedColor() 只替换选中矩形的颜色;undoLastObject() 删除数组末尾对象并立即重绘。