问题标签 [transformgroup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
566 浏览

wpf - WPF ListView 中图像的奇怪转换行为

我有一个包含多列的 DataGrid。在其中一个内列中,我正在显示图像。这个图像需要旋转,所以我TransformGroup根据需要使用了 a 来缩放和旋转图像。

如果我不旋转,使用以下 XAML,图像会正常显示。当我更改图像列的宽度时,图像会按预期缩放。它保持在其列的范围内:

现在,如果我尝试在图像列中根据需要旋转图像,事情就会变得很奇怪。列仍然与未旋转的图像宽度相关联,而行高与未旋转的图像高度相关联。该图像还侵入了其左侧邻居的空间。这是我尝试过的一种 XAML 变体:

上面的 TranslateTransform 是一个完整的技巧,至少使图像的右边缘与其列的右边缘对齐。

我试图添加一个 Viewbox,认为它会按照我想要的方式缩放,并在其中旋转图像,但这不起作用。

谁能告诉我我在这里根本缺少什么,并提供有关如何解决解决方案的提示?此时我唯一的想法是在显示之前旋转图像并保存到磁盘。

0 投票
0 回答
173 浏览

java - 获取对组的主要父级的引用 - Java3D

我有以下代码用于在 Java3D 中捕获鼠标点击。我希望最终能够单击场景中的对象并用鼠标移动它。

点击部分对象的输出如下:

这是因为我的 Wall3D / Floor3D 和 Carpet3D 仅由一个基元组成,例如:

地毯3D:

晚餐桌3D:

有人知道我如何获得对我单击的任何对象的主要组的引用吗?

更新

我有这个有效的代码,但它看起来非常难看。当引用一个只有一层的对象时,会为更高的层抛出一个空指针......

0 投票
1 回答
117 浏览

wpf - 转换无法正常工作

这是我的代码,它旋转我的对象。我必须旋转两个相同类型的对象。

初始化:

串口接收数据代码:

我在这里使用了两个 Dispatcher.BeginInvok' 函数,因为我想同时旋转两个对象。但问题是,当我只使用一个对象旋转时,就没有问题了。但是当我包含第二个时,第一个对象没有根据我在程序中提到的角度正确旋转。我的理解是每次触发事件时transformGroup都会添加一个新的rotateTransform是一个问题。所以我尝试在添加后删除添加的 TrRot。但这对我也不起作用。谢谢。

0 投票
0 回答
235 浏览

wpf - WPF RotateTransform 行为很奇怪

我有一个我想旋转和翻译的画布。我在 TransformGroup 中使用 RotateTransform 和 TranslateTransform。

我想对这些转换执行以下步骤:

  1. 以某个角度旋转画布。
  2. 将我的画布平移到一段距离
  3. 旋转画布。

步骤 1 和步骤 3 中的旋转中心相同。但是在执行第 2 步之后,我想将旋转中心更改为应该位于父级中心的新位置。但不知何故,这不起作用。

问题是中心点,我在每次旋转之前将其重置为旧点。但经过几次移动和旋转后,这个点就会移到容器或屏幕之外的某个地方。只是想帮助解决那个问题。

在此处输入图像描述

其中“C”是红色矩形的旋转中心,蓝色矩形是相同的红色矩形但已平移。现在我需要旋转蓝色矩形,但旋转中心应该是“C”。

0 投票
1 回答
583 浏览

rotation - 如何应用不同角度的多次旋转?

我试图在 z 轴上将几个圆柱体旋转 90 度,然后在 y 轴上以不同的度数旋转每个圆柱体。我的问题是使用 setRotation 函数只允许我选择一个角度,但将其应用于多个轴。如果我添加另一个 setRotation,它只会更改它而不添加它。我该怎么做才能对同一个对象应用多个旋转,甚至多个或相同的变换?这是我的代码片段,显示了我的工作。

0 投票
1 回答
91 浏览

wpf - 更改自定义圆环图的起始角度和方向

我正在尝试在 WPF 中创建一个圆环图并使用这个有用的先前答案

但是,目前 StartAngle 从 3 点钟位置开始,例如

在此处输入图像描述

如何更改此代码,以便 StartAngle 从 12 点钟位置开始,角度按顺时针方向测量,例如

1] StartAngle = 0, EndAngle = 90 => 覆盖右上角。

2] StartAngle = 0,EndAngle = 180 => 覆盖右半部分。

3] StartAngle = 0, EndAngle = 270 => 覆盖图表的四分之三。

我尝试将其更改为SweepDirection.CounterclockwiseSweepDirection.Clockwise但这不起作用。我还尝试在我的 Arc 类中添加一个ScaleTransformand RotateTransform,如下所示。

WPF代码:

弧.cs:

我尝试添加以下内容:

它像这样旋转和移动弧线:

在此处输入图像描述