使用 Formulas 元素

本主题介绍 VML,这是自 Windows Internet Explorer 9 起弃用的功能。 依赖于 VML 的网页和应用程序应迁移到 SVG 或其他广泛支持的标准。

注意

截至 2011 年 12 月,本主题已存档。 因此,不再主动维护它。 有关详细信息,请参阅 存档内容。 有关当前版本的 Windows Internet Explorer 的信息、建议和指南,请参阅 Internet Explorer 开发人员中心

 

在本主题中,我们将说明如何使用 <formulas> 子元素定义形状的可调整路径。

可以将公式>子元素放在 <或 中<shape>,以<shapetype>定义可改变形状路径的公式。 在子元素中 &lt;formulas&gt; ,一个 f 子元素定义一个公式,以便基于该公式计算一个值。 例如,公式 <v:f eqn="prod 10 4 5"/> 定义等效于“10 x 4 / 5”的值。

可以将多个 f 子元素放在一个&lt;formulas&gt; 子元素内。 公式可以引用之前在同一 &lt;formulas&gt; 子元素中的其他公式中定义的值。 在第一个公式中定义的值可以称为 @0,在第二个公式中定义的值可以称为 @1,依此。

此外,还可以指定 元素的 <shape>adj 属性属性,例如 adj=“100, 200, 150”。 在 元素中 &lt;formulas&gt; ,可以在 adj 列表中引用这些值。 adj 列表中的第一个值 (100) 可称为 #0, (200) 的第二个值可称为 #1,依此。

例如,若要绘制笑脸,可以键入以下 VML 表示形式:

shape1.gif (735 字节)

<v:shape style='width:1in;height:1in;' strokecolor="red"
strokeweight="2pt" coordsize="21600,21600" adj="17520"
path="m10800,0qx0,10800,10800,21600,21600,10800,10800,0xe
m7340,6445qx6215,7570,7340,8695,8465,7570,7340,6445xnfe
m14260,6445qx13135,7570,14260,8695,15385,7570,14260,6445xnfe
m4960@0c8853@3,12747@3,16640@0nfe">
<v:formulas>
<v:f eqn="sum 33030 0 #0"/>
<v:f eqn="prod #0 4 3"/>
<v:f eqn="prod @0 1 3"/>
<v:f eqn="sum @1 0 @2"/>
</v:formulas>
</v:shape>
  • adj="17520" 定义值 (= 17520) 。 此值可以引用为 #0。
  • 第一个公式 <v:f eqn="sum 33030 0 #0"/>定义值 (= 33030 + 0 - #0) 。 此值可以引用为 @0。
  • 第二个公式 <v:f eqn="prod #0 4 3"/>定义值 (= #0 * 4/3) 。 此值可以引用为 @1。
  • 第三个公式 <v:f eqn="prod @0 1 3"/>定义值 (= @0 * 1/3) 。 此值可以引用为 @2。
  • 第四个公式 <v:f eqn="sum @1 0 @2"/>定义 (=@1 + 0 -@2) 的值。 此值可以引用为 @3。
  • <path> 元素内,第一个 (@0) 和第四个 (@3) 公式中定义的值用于确定形状的轮廓。

如果更改 adj 列表(例如 adj="20000"),引用 adj 列表的公式的值也会更改,从而影响笑脸,如下所示:

shape2.gif (765 字节)

<v:shape style='width:1in;height:1in;' strokecolor="red"
strokeweight="2pt" coordsize="21600,21600" adj="20000"
path="m10800,0qx0,10800,10800,21600,21600,10800,10800,0xe
m7340,6445qx6215,7570,7340,8695,8465,7570,7340,6445xnfe
m14260,6445qx13135,7570,14260,8695,15385,7570,14260,6445xnfe
m4960@0c8853@3,12747@3,16640@0nfe">
<v:formulas>
<v:f eqn="sum 33030 0 #0"/>
<v:f eqn="prod #0 4 3"/>
<v:f eqn="prod @0 1 3"/>
<v:f eqn="sum @1 0 @2"/>
</v:formulas>
</v:shape>

有关此元素的详细信息,请参阅 VML 规范