Scale 缩放

Scale 是 Geometry(几何)分类下的行为,和 Move、Rotate 同属一类,都用来改变组件本身的几何形态。Scale 专门做尺寸变化:拿一个数值输入(比如标签值),按比例把组件放大或缩小。它适合做随数据涨落的条形、随液位长高的填充块、随量值变大变小的图标。绑定方式和其他行为一样,在行为浏览器左侧树里选中目标组件,从右侧 Geometry 目录把 Scale 拖到该组件节点上;双击右侧不会绑定,只会提示拖拽。

几何

几何: Scale 缩放

Scale(缩放)是 Geometry 类行为之一,把一个数值输入映射成组件的尺寸变化,常用于做条形涨落、液位填充、图标随量变大变小。在行为浏览器里把它拖到组件上即可绑定。

它是什么、用来做什么

Scale 是 Geometry(几何)分类下的行为,和 Move、Rotate 同属一类,都用来改变组件本身的几何形态。Scale 专门做尺寸变化:拿一个数值输入(比如标签值),按比例把组件放大或缩小。它适合做随数据涨落的条形、随液位长高的填充块、随量值变大变小的图标。绑定方式和其他行为一样,在行为浏览器左侧树里选中目标组件,从右侧 Geometry 目录把 Scale 拖到该组件节点上;双击右侧不会绑定,只会提示拖拽。

使用方法:编辑器控件逐项说明

双击组件下的 Scale 行为打开编辑器。它先把 Source Value 换算成 Source Min / Source Max 内的百分比,再映射到 Scale Min / Scale Max 之间的缩放因子。Scale Min / Scale Max 填的是比例,不是百分比。

  • General / Behavior Name:行为显示名,方便在行为树里识别。
  • General / Component Name:当前组件名,只读;不对就关闭编辑器后重新选组件。
  • Quality Override / Quality Border:勾选后启用 GOOD / BAD 色块;GOOD 默认 #000000,BAD 默认 #FF8800。
  • Script 函数按钮:打开脚本片段选择器,把片段插入当前聚焦表达式框;未聚焦时默认插入 Source Value。
  • Source Value:驱动缩放的表达式,默认 0.0,通常用 ReadTagDouble(...) 读标签。
  • Condition:运行条件表达式,默认 true;返回 false 时本次 Scale 跳过。
  • Source Min / Source Max:输入源范围,默认 0.0 / 100.0;决定输入值在区间里的百分比位置。
  • Scale Min / Scale Max:两端缩放因子,默认 0.0 / 1.0;1.0 是原始尺寸,0.5 是一半,1.5 是 1.5 倍。旁边的 Target 按钮可按当前图形尺寸自动写入比例。
  • Limit Min / Limit Max:输入夹取范围,默认 ValueMin / ValueMax;用于限制参与换算的输入上下限。
  • Moving Edge:会移动的边,单选 Top / Bottom / Left / Right。选 Top 表示顶边动、底边固定;选 Right 表示右边动、左边固定。
  • 底部状态 / OK / Cancel:状态区显示实时校验结果;OK 校验通过才保存,Cancel 或关闭窗口放弃修改。
// Source Value
ReadTagDouble("Tank01.Level", 0)

// Source Min=0  Source Max=100
// Scale Min=0.0 Scale Max=1.0
// Moving Edge=Top  (顶边动、底边固定,像液位往上长)

Target 按钮使用方法

Scale Min / Scale Max 旁边也有 Target。编辑器打开时会记录组件原始尺寸;在 PowerPoint 中将同一个组件拉到目标尺寸后点击 Target,编辑器按 Moving Edge 反算“目标尺寸 / 原始尺寸”的缩放因子,写入对应字段,再尝试把组件恢复到原始几何。

  • 先选 Moving Edge,因为它决定用宽还是高、用哪条边来计算目标尺寸。
  • Top / Bottom 使用高度计算:Top 用原始底边减当前顶边,Bottom 用当前底边减原始顶边。
  • Left / Right 使用宽度计算:Left 用原始右边减当前左边,Right 用当前右边减原始左边。
  • 原始宽高为 0、目标尺寸为负数、或当前选中的不是同一组件时,Target 会警告并拒绝写入。
  • Target 写入的是 0.### 格式的比例值;如果需要固定表达式,仍然可以手工覆盖 Scale Min / Scale Max。

适用场景

当某个数值需要直接体现在组件“变大变小”上时用 Scale。典型场景:

  • 液位填充:水箱里的填充块随液位百分比往上长,Moving Edge 选 Top(底边固定)。
  • 条形涨落:产量/负荷条随数值从一端生长,Moving Edge 选生长方向那条边。
  • 图标响应:图标尺寸随某个量值在 Scale Min~Scale Max 之间放大缩小,作为强弱提示。

边界与易错点

使用 Scale 时需要注意以下事项:

  • Moving Edge 是“会动的边”,不是固定边:选 Top 表示顶边动、底边固定;选 Left 表示左边动、右边固定。要让某条边保持不动,就选它的对边。
  • Scale Min / Scale Max 填的是缩放因子,不是百分比:原尺寸是 1.0,不要填 100。
  • 一个 Moving Edge 只对应一个方向:选了 Right 就不要指望它同时向两侧缩放,固定边那侧不动。
  • Scale 编辑器当前没有 Hide outside range 勾选项;需要超范围隐藏时,要用 Condition 或其它显隐行为配合。
  • 想让心智模型简单,可令 Source Min = Limit Min、Source Max = Limit Max,避免重复调输入范围。
Scale 缩放行为编辑器
图示 1: Scale 编辑器

把数值映射成缩放因子,用 Moving Edge 决定哪条边动、哪条边固定。