0

我有一个LinearGradientBrush定义用于在 MeshGeometry3D 中绘制纹理,如下所示。这个想法是画笔绝对末端的值应该用 Silver 绘制:

    <LinearGradientBrush x:Key="GrayOmitOutOfRangeIncreasing"   StartPoint="0,0.5" 
                                                                EndPoint="1,0.5" >
        <GradientStop Color="Silver" Offset="0.00" />
        <GradientStop Color="#000064" Offset="0.00000000000000014" />
        <GradientStop Color="#000091" Offset="0.043" />
        <GradientStop Color="#0000BE" Offset="0.087" />
        <GradientStop Color="#3C00B2" Offset="0.130" />
        <GradientStop Color="#7800A5" Offset="0.173" />
        ... and other gradient stops...
        <GradientStop Color="#FCE800" Offset="0.913" />
        <GradientStop Color="#FCF200" Offset="0.957" />
        <GradientStop Color="#FCFC00" Offset="0.99999" />
        <GradientStop Color="Silver" Offset="0.99999979" />
        <GradientStop Color="Silver" Offset="1" />
    </LinearGradientBrush>

取而代之的是,在绘制之前转换为 0 到 1 范围内的值会呈现相邻颜色的阴影,如下图所示:

在此处输入图像描述

我怎样才能得到我想要的图像?

4

1 回答 1

1

看看它们是如何定义的:

    <GradientStop Color="#FCFC00" Offset="0.99999" />
    <GradientStop Color="Silver" Offset="0.99999979" />
    <GradientStop Color="Silver" Offset="1" />

这意味着……什么,0.001% 的网格将是从 FCFC00 到银色的渐变。这不会被检测到。将倒数第二个银色渐变停止移动到 0.98 左右,看看是否能让你更接近。

于 2014-03-18T04:58:16.913 回答