首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建高级HUD

创建高级HUD
EN

Stack Overflow用户
提问于 2011-05-28 19:28:52
回答 2查看 2.4K关注 0票数 5

我正在用WPF为AR无人机四轴飞行器做一个接口。

我需要一些东西在我的HUD上,让它变得有用。

HUD上的一个更先进的控制是人工地平线,它告诉飞行员飞机当前与地平线的对准。

我有三个PNG

第一个图像我将移动(当前工艺的俯仰)和旋转(工艺的当前滚动)。

我会将第二张图片放在第一张图片上,这张图片只会绕着中心轴旋转,它有一定的刻度,这将使飞船的滚动更加直观。

最后一张我将放在第二张上面,这张图片只是一个视觉改进器。

然后,我想要遮罩第一张图像,以便您只看到图2中圆圈内的内容。

最后但并非最不重要的是,我想向其添加一个文本块并显示当前高度

结果将如下所示

我知道如何旋转和移动图像,但是如何将图像放在彼此的顶部,以及如何遮罩第一个图像?

编辑:感谢Ben,我已经走到了这一步:

但我还需要平移图像的Y位置(飞机的俯仰)

当我添加平移变换时,我也平移了剪辑(蒙版)如何在不移动蒙版的情况下平移图像?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-28 20:03:19

这是一个小示例,告诉你如何使用DrawingGroups和其中的一个ClipGeometry

代码语言:javascript
运行
复制
<Grid>
  <Image Source="Images\Background.jpg" />

  <Image>
    <Image.Source>
      <DrawingImage>
        <DrawingImage.Drawing>
          <DrawingGroup>
            <DrawingGroup>
              <!-- You can rotate a DrawingGroup -->
              <DrawingGroup.Transform>
                <RotateTransform Angle="-15" CenterX="50" CenterY="50" />
              </DrawingGroup.Transform>

              <ImageDrawing ImageSource="Images\last.png" Rect="0,0,100,100" />
              <DrawingGroup.ClipGeometry>
                <EllipseGeometry Center="50,50" RadiusX="25" RadiusY="25" />
              </DrawingGroup.ClipGeometry>
            </DrawingGroup>

            <DrawingGroup>
              <ImageDrawing ImageSource="Images\middle.png" Rect="0,0,100,100" />
              <ImageDrawing ImageSource="Images\outer.png" Rect="0,0,100,100" />
            </DrawingGroup>
          </DrawingGroup>
        </DrawingImage.Drawing>
      </DrawingImage>
    </Image.Source>
  </Image>
</Grid>
票数 4
EN

Stack Overflow用户

发布于 2011-05-30 17:36:40

我昨晚很累:D为了让背景旋转和平移,而不是剪辑,就是把背景放在一个子组中,放到剪贴组中……现在它起作用了!

代码语言:javascript
运行
复制
    <Image Width="240" Height="240">
        <Image.Source>
            <DrawingImage>
                <DrawingImage.Drawing>
                    <DrawingGroup>
                        <DrawingGroup>
                            <DrawingGroup>
                                <DrawingGroup.Transform>
                                    <TransformGroup>
                                        <RotateTransform Angle="-15" CenterX="120" CenterY="120" />
                                        <TranslateTransform Y="-20" />
                                    </TransformGroup>
                                </DrawingGroup.Transform>

                                <ImageDrawing ImageSource="Images\pNxVK.png" Rect="0,0,240,240" />
                            </DrawingGroup>

                            <DrawingGroup.ClipGeometry>
                                <EllipseGeometry Center="120,120" RadiusX="60" RadiusY="60">
                                </EllipseGeometry>
                            </DrawingGroup.ClipGeometry>
                        </DrawingGroup>

                        <DrawingGroup>
                            <ImageDrawing ImageSource="Images\zUr8D.png" Rect="0,0,240,240" />
                            <ImageDrawing ImageSource="Images\XPZW9.png" Rect="0,0,240,240" />
                        </DrawingGroup>
                    </DrawingGroup>
                </DrawingImage.Drawing>
            </DrawingImage>
        </Image.Source>
    </Image>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6161351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档