AnyLogic颜色(color)的设置

AnyLogic 允许用户为他们的图形元素选择任何喜欢的颜色。这可以通过使用 颜色 对话框来完成。

颜色对话框

当用户想要为形状或模型元素指定一些自定义的 填充颜色线条颜色 时,通常使用 颜色 对话框,而这些颜色不在最常用颜色的集合中。

使用颜色对话框选择自定义颜色的步骤:

  1. 点击 填充颜色 或 线条颜色 控件内的下拉列表,打开包含最常用颜色集合的列表。我们称此控件为颜色选择器。
  2. 点击 其他颜色... 部分。将打开 颜色 对话框。
  3. 使用提供的控件选择您喜欢的颜色(下面有描述)。
  4. 完成后,点击 确定 应用更改。

对话框包含两个页面(标准光谱)以及对话框底部的公共区域。

标准页面

标准 页面允许用户从标准颜色集合中选择颜色。当鼠标悬停在调色板中的某种颜色上时,将显示显示此颜色象征名称的工具提示。

光谱页面

光谱 页面允许选择自定义颜色。您可以通过在 颜色 区域拖动手柄来选择光谱上的任何颜色。或者,您可以直接在下面的控件中指定 红色绿色蓝色 颜色组件。

对话框的公共区域包含以下控件:

  • 预览窗格位于右下角,显示当前为编辑的模型元素设置的颜色(当前)和在颜色选择器的调色板中当前选择的颜色()。
  • 选择的颜色 — 显示对应于当前选择颜色的代码字符串:颜色名称常量或颜色构造器。您可以使用此字段按在 "使用 Java 表达式定义颜色" 部分中描述的方式来定义自定义颜色。
  • 复制 — 按钮将 选择的颜色 字段中的字符串复制到剪贴板。您可以稍后将其粘贴到您希望使用此颜色绘制的其他形状的相应 动态 属性中。
  • 透明度 — 滑块设置颜色的透明度。透明度值显示在滑块右侧的控件中。255 对应完全不透明的颜色,0 对应完全透明。

使用 Java 表达式定义颜色

您可以通过在 选择的颜色 字段中指定有效的 Java 表达式来设置颜色。

允许几种替代语法。您可以指定:

  • AnyLogic 颜色常量:

    • red,
    • magenta,
    • dodgerBlue,
    • 等等,见 "颜色常量" 部分的完整列表。
  • Java 构造器:

    • new Color(int r, int g, int b) — 创建具有指定红色、绿色和蓝色值的不透明 sRGB 颜色,范围在 (0 - 255)。
    • new Color(int r, int g, int b, int a) — 创建具有指定红色、绿色、蓝色和 alpha 值的 sRGB 颜色,范围在 (0 - 255)。Alpha 值定义颜色透明度:0 定义完全透明的颜色,255 定义完全不透明的颜色。
  • 颜色组件值以以下格式:

    • 格式为 rrr ggg bbb 的一系列整数值,每个组件的值范围为 0 到 255。示例:120 37 0。
    • 格式为 r g b 的一系列浮点值,每个组件的值范围为 0.0 到 1.0。示例:0.5 1 0.2。
    • 十六进制值,格式为 #rrggbb 和 #aarrggbb,每个 xx 组件的值范围为 00 到 ff。示例:#00ff00 — 绿色。

颜色常量

最流行的颜色在 颜色 对话的 标准 页面上列出(见下图)。

如果您想使用其他颜色,可以通过在对话框的 光谱 页面上拖动手柄来选择它,或者明显地指定 红色绿色蓝色 颜色组件。

如图所示的颜色集合(显示在 颜色 对话框中)

如果您想动态切换到这些标准颜色之一,可以使用相应的常量名称来引用所需的颜色。下表列出了上面显示的所有标准颜色的颜色常量名称。使用索引 (A..J, 1..14) 来找到这些表单元格之间的对应关系。

FGHIJ
1blackdarkGraydimGraygraysilverlightGreygainsborowhiteSmokewhitered
2darkRedmaroonfireBrickbrownindianRedlightCoralrosyBrownsnowmistyRosesalmon
3tomatodarkSalmoncoralorangeRedlightSalmonfeldsparsiennaseaShellsaddleBrownchocolate
4sandyBrownpeachPuffperulinenbisquedarkOrangeburlyWoodtanantiqueWhitenavajoWhite
5blanchedAlmondpapayaWhipmoccasinorangewheatoldLacefloralWhitedarkGoldenRodgoldenRodcornsilk
6goldkhakilemonChiffonpaleGoldenRoddarkKhakiyellowolivelightGoldenRodYellowlightYellowbeige
7ivoryoliveDrabyellowGreendarkOliveGreengreenYellowchartreuselawnGreenlimegreendarkGreen
8limeGreenforestGreenlightGreenpaleGreendarkSeaGreenhoneyDewseaGreenmediumSeaGreenspringGreenmintCream
9mediumSpringGreenmediumAquaMarineaquamarineturquoiselightSeaGreenmediumTurquoisecyandarkCyantealdarkSlateGray
10paleTurquoiselightCyanazuredarkTurquoisecadetBluepowderBluelightBluedeepSkyBlueskyBluelightSkyBlue
11steelBluedodgerBluelightSlateGrayslateGraylightSteelBluecornflowerBlueroyalBluebluemediumBluedarkBlue
12navymidnightBluelavenderghostWhiteslateBluelightSlateBluedarkSlateBluemediumSlateBluemediumPurpleblueViolet
13indigodarkOrchiddarkVioletmediumOrchidmagentadarkMagentapurplevioletplumthistle
14orchidvioletRedmediumVioletReddeepPinkhotPinkpaleVioletRedlavenderBlushcrimsonpinklightPink

除了上述列出的“经典”颜色外,您还可以使用任何其他“自定义”颜色。您可以创建颜色作为标准 Java 类 Color 的实例。

动态定义自定义颜色

  • new Color(𝑟𝑒𝑑red, 𝑔𝑟𝑒𝑒𝑛green, 𝑏𝑙𝑢𝑒blue) — 根据给定的 RGB 值创建新颜色;每个值必须在范围 [0..255] 内。 示例: rectangle.setFillColor(new Color(0, 220, 100));

  • 𝑐𝑜𝑙𝑜𝑟color.brighter() — 创建给定颜色的更亮版本。

    示例: oval.setFillColor(red.brighter());

  • 𝑐𝑜𝑙𝑜𝑟color.darker() — 创建给定颜色的更暗版本。

    示例: oval.setFillColor(red.darker());

定义透明颜色

透明元素的绘制时间显著更长,因此可能会减慢模型执行速度。

  • new Color(𝑟𝑒𝑑red, 𝑔𝑟𝑒𝑒𝑛green, 𝑏𝑙𝑢𝑒blue, 𝑎𝑙𝑝ℎ𝑎alpha) — 创建具有给定 RGB 的透明颜色。𝑎𝑙𝑝ℎ𝑎alpha = 0 表示完全透明,𝑎𝑙𝑝ℎ𝑎alpha = 255 表示完全不透明。 示例: line.setColor(new Color(0, 0, 100, 30));

  • semiTransparent(Color color) — 创建给定颜色的半透明版本。颜色可以定义为颜色常量,或使用上述 new Color(𝑟𝑒𝑑red, 𝑔𝑟𝑒𝑒𝑛green, 𝑏𝑙𝑢𝑒blue) 构造器。

    示例: line.setColor(semiTransparent(blue));

  • transparent(Color color, double fraction) — 创建给定颜色的透明版本。颜色可以定义为颜色常量,或使用上述 new Color(𝑟𝑒𝑑red, 𝑔𝑟𝑒𝑒𝑛green, 𝑏𝑙𝑢𝑒blue) 构造器。分数定义透明度比率。它的值范围在 [0..1],0 表示透明,1 — 不透明。

    示例: line.setColor(transparent(blue, 0.7));

为多个形状获取漂亮的颜色

假设您的模型中有几种不同但相似的形状,您希望使用彼此协调的不同颜色来显示。函数 spectrumColor(int index, int period) 将返回一个具有给定索引的颜色,该颜色在 period 不同颜色中均匀分布在整个光谱上。

例子:

使用 spectrumColor() 函数获得的不同颜色为十个复制形状的个体项目(检查形状的属性:填充颜色X复制)。

在运行时使元素的组件不可见

  • 将元素组件(填充或轮廓)的颜色设置为 null。

    示例: oval.setLineColor(null);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值