这份独立练习关注画面等比缩放与黑边。它提供明确的虚构规则和一段完整记录,适合先自己判断、再核对每一步。所有数据只用于学习机制,不代表任何具体产品的实现;实际规则有变化时,需要重新建立记录。
本例规则与输入
设计画布360×240,屏幕1024×768。完整画布等比缩放并居中,无裁剪,不对坐标取整;坐标表示连续画布上的位置,最右下边界允许等于画布宽高。
宽方向比例:128/45 高方向比例:16/5
记录方法
设计坐标和屏幕像素并不总是一比一对应。等比缩放为了保留完整画面,会在一个方向留下空白,点击位置还要扣除这段偏移。
先用宽高两个可用比例中较小的一个缩放,再把剩余空间平分到两边。直接分别拉伸宽和高会改变形状,属于另一种显示规则。
逐条核对
点1,设计坐标(0,0):横向0+0×128/45=0,纵向128/3+0×128/45=128/3。
点2,设计坐标(360,240):横向0+360×128/45=1024,纵向128/3+240×128/45=2176/3。
点3,设计坐标(180,120):横向0+180×128/45=512,纵向128/3+120×128/45=384。
点4,设计坐标(39,56):横向0+39×128/45=1664/15,纵向128/3+56×128/45=9088/45。
点5,设计坐标(274,56):横向0+274×128/45=35072/45,纵向128/3+56×128/45=9088/45。
点6,设计坐标(283,16):横向0+283×128/45=36224/45,纵向128/3+16×128/45=3968/45。
点7,设计坐标(315,158):横向0+315×128/45=896,纵向128/3+158×128/45=22144/45。
结果及另一种检查
缩放系数128/45,左右各留0、上下各留128/3像素。屏幕点还原为设计点时,先减对应留白,再除以该系数。
把中点代入后,必须落在屏幕正中心;两个边界点之间的距离比应保持原画布宽高比。这里的分数是精确几何坐标,最终渲染如何对齐像素需另查实际引擎规则。
练习建议
动手时,把纸分成输入、操作前状态、操作后状态三列,先不要看最后答案。出现差异后从第一条不同的记录开始检查,而不是只改末尾数字。若第一处分歧还没解释清楚,继续算往往只会把同一个错误传到后面。记录单位、正负方向和是否包含边界,也能让别人复核你的过程。
复习时只改一个条件,例如改一条事件、一个初始值或一次记录,先预测哪些后续行会受影响,再重新计算。把保持不变的部分也写下来,才能区分真正的机制变化与偶然的数字变化。练习完成后,可尝试用另一种办法核对总量、边界或最终状态;两种方法一致,比只重复原来的运算更有帮助。