我有 TPathData 箭头并直接在 Canvas 上绘制。如何旋转 TPathData?我知道旋转 Tpath,但我直接在画布上绘制(线条和箭头)。我尝试旋转 Tpath 和 get Data 字符串 - 但它和以前一样。
答案 0 :(得分:4)
您必须先创建一个 rotation matrix,然后再创建一个 apply it。
M := TMatrix.CreateRotation(DegToRad(90));
PathData.ApplyMatrix(M);
答案 1 :(得分:4)
与其旋转TPathData,为什么不在绘制路径之前设置TCanvas矩阵呢?这可能更高效,因为 GPU 负责旋转,而且数值也更稳定,因为如果您旋转多次,您的路径数据点不会失去任何精度。
<CollectionView
x:Name="ColTotIcon"
Grid.Row="1"
Grid.ColumnSpan="5"
Margin="10"
HorizontalOptions="Center"
SelectionMode="Single"
IsGrouped="True">
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical" Span="8" VerticalItemSpacing="5" HorizontalItemSpacing="9"/>
</CollectionView.ItemsLayout>
<CollectionView.GroupHeaderTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="10"/>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" BackgroundColor="Transparent"/>
<Label
Grid.Row="1"
Text="{Binding Name}"
TextColor="Black"
FontSize="15">
</Label>
<Button Grid.Row="2" BackgroundColor="Transparent"/>
</Grid>
</DataTemplate>
</CollectionView.GroupHeaderTemplate>
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="{Binding isSource}"/>
<Button Grid.Row="0" BackgroundColor="Transparent" Clicked="SelectIconActivity_Clicked" />
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>