You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2D:如何将物体缩放至适配两点A、B之间?

物体K适配A、B两点的下一步操作

嘿,这个问题核心就是计算正确的缩放比例并执行缩放,我给你一步步拆解清楚:

第一步:计算A、B两点的实际距离

首先得算出AB的真实长度,假设A、B是2D坐标点(比如A=(x₁,y₁),B=(x₂,y₂)),用距离公式计算:

distance_AB = √[(x₂ - x₁)² + (y₂ - y₁)²]

如果是3D场景,只需加上z轴坐标差的平方项即可。

第二步:确定缩放比例(分两种常见适配场景)

因为物体K原本是宽高均为1的正方形(或正方体),要“恰好适配A、B之间”,通常有两种常用的适配逻辑:

  • 场景1:让物体沿AB方向的边刚好覆盖A到B
    这种情况缩放比例直接等于AB的长度:

    scale_factor = distance_AB
    

    缩放后,物体沿AB方向的边长刚好等于AB,两端点会落在A、B上。如果是仅沿AB方向拉伸(非等比缩放),物体形状会变成矩形;如果是等比缩放,物体整体放大,直到沿AB方向的边长等于AB。

  • 场景2:等比缩放物体,让物体的对角线刚好覆盖A到B
    原物体的对角线长度是√2(2D),所以缩放比例为:

    scale_factor = distance_AB / √2
    

    这种情况下,缩放后的正方形对角线长度等于AB,两个对角顶点刚好落在A、B上,完美适配且保持正方形形状。

第三步:执行缩放操作

以已经居中的物体中心(也就是AB线段的中点M=(A+B)/2)为缩放原点,应用上面计算出的缩放比例对物体K进行缩放。

图示说明(2D场景)

居中完成后的初始状态:

A                    B
        ──────────────────────
            [□] (K的中心与AB中点重合)

场景1缩放后的最终状态:

A                    B
        ──────────────────────
        [██████████████████] (K的两端对齐A、B,中心仍在中点)

场景2缩放后的最终状态:

A                    B
        ──────────────────────
           ██████████████
          ██           ██
         ██             ██
          ██           ██
           ██████████████
(正方形的对角顶点刚好落在A、B上,中心不变)

内容的提问来源于stack exchange,提问作者Pol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:27:52