Visio中如何通过ShapeSheet实现基于控制点动态计算直径的自定义圆形
Visio ShapeSheet 动态直径自定义圆形配置流程
- 第一步:插入基础椭圆形状,打开ShapeSheet面板(没有开发者选项卡的话,先进入「文件-选项-自定义功能区」勾选「开发者」,再点击开发者选项卡下的「显示ShapeSheet」)
- 第二步:锁定宽高比保证始终为正圆,在Shape Transform节,将
Width单元格的公式修改为=Height,后续只要调整高度即可同步宽度,保持正圆属性 - 第三步:添加自定义参数存储变量,右键ShapeSheet空白区域选择「插入节」,勾选「用户自定义的单元格」后新增两个变量:
User.VertexAngle:存储等腰三角形顶角的角度值,单位为度,可自行设置初始值例如30degUser.ControlDistance:存储控制点到圆心的直线距离,后续和控制点坐标绑定
- 第四步:添加可拖动控制点,右键ShapeSheet空白区域选择「插入节」,勾选「控件」后配置控制点坐标规则:
Controls.X公式设为=PinX,保证控制点和圆心X坐标对齐,始终处于圆心正上方Controls.Y公式设为=PinY + User.ControlDistance,将控制点Y轴偏移量和距离变量绑定;也可以反向绑定User.ControlDistance的公式为=Controls.Y - PinY,拖动控制点时会自动计算距离
- 第五步:绑定三角函数计算规则,修改Shape Transform节的
Height单元格公式(Visio内置TAN函数仅接受弧度输入,需要先做角度转弧度处理):=2*User.ControlDistance*TAN(RADIANS(User.VertexAngle/2))
配置完成后即可实现目标效果:拖动控制点远离圆心时,圆形直径会同步增大,修改User.VertexAngle的数值即可调整直径的增长速率,顶角角度越大,相同距离下的直径增长越快。
内容的提问来源于stack exchange,提问作者Mark_Sagecy
相关产品推荐
相关产品推荐

