小编sev*_*and的帖子

WPF工具包图表:更改数据值时数据点可视化的位置发生了变化

我使用WPF工具包图表来显示带有数据点的几个系列.我为LineDataPoints创建了样式,这些样式使用画布,在画布上绘制符号(如圆圈).

这是样式定义之一:

<Style x:Key="CircleDataPointStyleRed"
       TargetType="chartingToolkit:LineDataPoint">
    <Setter Property="Background"
            Value="Red" />
    <Setter Property="IsTabStop"
            Value="False" />
    <Setter Property="Width"
            Value="10" />
    <Setter Property="Height"
            Value="10" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="chartingToolkit:LineDataPoint">
                <Canvas>
                    <Ellipse Height="10"
                             Width="10"
                             Stroke="Red" />
                </Canvas>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

当我将数据加载到视图模型中时,图表会正确显示,线条可见,并且绘制的数据点居中到正确的位置,因此圆的中心点位于实际数据点的位置.现在,当我将一组不同的数据加载到图表中时(更改LineSeries绑定的ObservableCollections),仍然可以正确绘制线条,但圆圈不会再绘制在中心,而是将其画布的左上角放在实际数据点的位置.当我调整图表大小时,圆圈的位置再次正确.

这里有一些屏幕截图要澄清:

加载第一个数据后: 加载第一个数据后

数据更改为不同值后: 数据更改为不同值后

图表调整后: 图表调整后

到目前为止我尝试过的(每个都无济于事):

  • 在模板中的画布上设置Horizo​​ntalAlignment和VerticalAlignment
  • 试图调用UpdateLayout()以及控件上的所有InvalidateXxx方法

即使在更改数据后,如何才能在正确的位置绘制数据点?

wpf wpftoolkit mschart

8
推荐指数
0
解决办法
1586
查看次数

现代OpenGL问题

在我的OpenGL研究中(我认为是OpenGL红皮书),我发现了一个关节机器人手臂模型的例子,它包括一个"上臂",一个"下臂",一个"手",以及五个或更多"手指".每个部分应该能够独立移动,但受"关节"约束(上部和下部"臂"始终连接在"肘部").

在立即模式(glBegin/glEnd)中,它们使用一个立方体的网格,称为"成员",并使用该单个网格的缩放副本用于手臂,手等的每个部分."移动"通过推动完成旋转到下面每个关节的转换矩阵堆栈:肩膀,肘部,手腕,关节 - 你得到了图片.

现在,这解决了问题,但由于它使用旧的,不推荐的立即模式,我还不了解现代OpenGL上下文中这个问题的解决方案.我的问题是:如何使用现代OpenGL解决这个问题?特别是,每个"成员"是否应该跟踪自己当前的转换矩阵,因为矩阵堆栈不再是犹太人?

opengl graphics

7
推荐指数
1
解决办法
459
查看次数

标签 统计

graphics ×1

mschart ×1

opengl ×1

wpf ×1

wpftoolkit ×1