极坐标系中图形的输出
在这个例子中,我们将展示如何在动态Engee模型的极坐标系中显示图形。
交互式脚本中的极坐标图
极坐标系中的图形允许您查看矩形(笛卡尔)坐标系中图形上不可见的关系:了解空间中某些方向上某个过程的严重程度,或跟踪循环过程中的重复动态。..
如果工作是在交互式脚本Engee中进行的,则使用参数将图形转换为极坐标系 proj. 它的价值 :polar 允许我们以极坐标绘制图形:
Θ = range( 0, stop = 1.5π, length = 100 )
r = abs.( 0.1 * randn(100) + sin.(3Θ) )
plot( Θ, r, proj = :polar, m = 2 )
而参数 ortho 在矩形坐标系中绘制图形
plot( Θ, r, proj = :ortho, m = 2 )
让我们尝试图在极性的坐标系,仅仅使用的帆布和工具的图形输出动态模型().
动态模型的极坐标图
要在不使用交互式脚本工具的情况下为动态模型构建极坐标图,我们需要将矢量从矩形坐标系转换为极坐标系。
考虑以下模型(draw_polar_engee_logo.engee):
如果您使用<svg width="24"height="24"viewBox="0 0 24 24"fill="none"xmlns="http://www.w3.org/2000/svg "data-qa="main-menu-button-play"class="main-menustyles__PlayIcon-sc-1wqztwu-2depZgn"><path fill-rule="evenodd"clip-rule="evenodd"d="M12 20.1818c16.5187 20.1818 20.1818 16.5187 20.1818 12c20.1818 7.48131 16.5187 3.81818 12 3.81818c7.48131 3.81818 3.81818 7.48131 3.81818 12c3. 81818 16.5187 7.48131 20.1818 12 20.1818zm12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 2212 22z"fill="#141519"><path d="m15.5 11c16.3598 11.5219 16.3598 12.4781 15.5 13L10.5 16C9.70345 16.4835 9 16.0486 9 15V9C9 7.95138 9.70345 7.5165 10.5 8l15.5 11z"fill="#2b2b2f">,它将绘制下图:
让我们使用[软件建模管理]工具来分析这个模型(https://engee.com/helpcenter/stable/modeling/programmatic-modeling-editing.html )。
modelName = "draw_polar_engee_logo";
model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
我们可以研究在每个块中给出哪些分段线性依赖关系。 LUT 不运行模拟,而简单地通过访问每个块的属性。
# Анализируем первую таблицу подстановок
x1 = eval(Meta.parse(engee.get_param( modelName*"/LUT1", "BreakpointsForDimension1" )));
y1 = eval(Meta.parse(engee.get_param( modelName*"/LUT1", "Table" )));
# Анализируем вторую таблицу подстановок
x2 = eval(Meta.parse(engee.get_param( modelName*"/LUT2", "BreakpointsForDimension1" )));
y2 = eval(Meta.parse(engee.get_param( modelName*"/LUT2", "Table" )));
# Построим график
plot(
plot( x1, y1, legend=false ),
plot( x2, y2, legend=false )
)
因此,该模型在矩形坐标系中构建图形,但在转换后输出它们,该转换将输入信号解释为极坐标系中的数据。
输出图形是极坐标系中两个图形的总和。 第一个设置组成标志的两条曲线(曲线)的中心线的位置 LUT2,其半径 1.0). 第二个分量(曲线 LUT1,输出半径为 0.25)模拟偏离中心线的情况。
坐标变换以两种不同的方式完成。 这两个选项都可以互换。 在第一种情况下,我们使用基本调色板中的简单块转换坐标。:
在第二种情况下,我们使用块 Engee Function 下面的代码执行相同的操作:
``'茱莉亚
结构块<:AbstractCausalComponent
#没有参数
结束
函数(c::块)(t::实,α,r)
x=rsin(α)
y=rcos(α)
返回(x,y)
结束
让我们输出模型构建的图形。:
gr()
s = engee.run( modelName, verbose=false );
plot( s["y"].value, s["x"].value, aspect_ratio=:equal )
结论
Engee正在逐步引入越来越复杂的图表工具,您可以使用这些工具而无需使用编程。
在这个演示中,我们展示了如何在不使用编程的情况下用极坐标绘制一个图形,以及如何使用块来完成它 Engee Function.
与交互式脚本中的图形不同,动态模型的图形可以在仿真过程中直接更新,这为模型的交互式仿真创造了有趣的机会。



