C#开发学习笔记:WPF的二维绘图(二)——几何图形Geometry

C#开发学习笔记:WPF的二维绘图(二)——几何图形Geometry

2023年7月19日发(作者:)

C#开发学习笔记:WPF的⼆维绘图(⼆)——⼏何图形Geometry转载⾃:在WPF的DrawingContext对象中,提供了基本的绘制椭圆和矩形的API:DrawEllipse和DrawRectangle。但是,这些是远远不够⽤的,我们在⽇常应⽤中,更多的是使⽤DrawGeometry函数,它可以绘制更多复杂的⼏何图形,并且提供了许多强⼤⽽易⽤的函数,在⼤多数场景下,甚⾄可以取代DrawEllipse和DrawRectangle函数。在WPF图形体系中,Geometry类表⽰⼏何图形的基类,使⽤的时候是实例化它的⼀些⼦类,具体的有:基本⼏何图形线段:矩形:椭圆:

⼏何图形集合

路径集合图形⾥可以包含⼀系列⼏何图形集合,常见的有:线段:

弧:贝塞尔曲线:贝塞尔曲线系列还⽐较多,具体有如下⼏种:1. :在两个点之间创建⼀条三次⽅贝塞尔曲线。2. :创建⼀系列三次⽅贝塞尔曲线。3. :创建⼀系列⼆次贝塞尔曲线。4. :创建⼀条⼆次贝塞尔曲线。除了这种组合的⽅式之外,系统还提供了⼀个通过⼀系列API来绘制的。它不⽀持绑定,动画,相应也更加灵活⽽⾼效。 StreamGeometry geometry = new StreamGeometry; using (StreamGeometryContext ctx = ()) { igure(new Point(10, 100), true , true); (new Point(100, 100), true , false); (new Point(100, 50), true, false); }

复合⼏何图形使⽤ 、 或者通过调⽤静态的 ⽅法 ,可以创建复合⼏何图形对象。它们主要的区别是: 对⼦图形进⾏叠加操作,没有⾯积的⼦图形将被丢弃。只能组合两个⼦图形(但是这两个⼦图形也可以是复合⼏何图形)。 只进⾏组合,⽽不进⾏⾯积叠加。可以添加多个⼦图形。有关⽰例,请参见。的叠加⽅式有四种:、、 和 ,它们的效果为:

这些在我们的⽇常应⽤中是⾮常有⽤的,具体⽰例请参看MSDN⽂章: 和。

常⽤⽅法Geometry对象中本⾝还包含了⼀系列⾮常有⽤的⽅法,如: - 获取 的⾯积。 - 确定是否包含其他 。 - 确定是否包含指定的点。Bounds:获取外接矩形这些都是⾮常常⽤的⽅法,例如FillContains,StrokeContains⽤于⿏标命中测试是⾮常⽅便的。

呈现⽅式Geometry对象并不能作为图像独⽴呈现出来,它⼀般有如下⼏种呈现⽅式:在Path中呈现:可以作为ry的参数呈现为Path对象 <> 这种⽅式下写⼀些简单的⼏何图形还⾏,但对于PathGeometry来说有些冗繁,因此XAML采⽤了⼀种简单的来简化这⼀过程, <> 甚⾄可以直接简化为:这种语法在⼀些第三⽅⽮量图转换过来的⽂件中⾮常常见,如果能熟练掌握的话,写⼀些简单的⼏何图形也是⾮常⽅便的。在DrawingContext中呈现可以作为DrawingContext. DrawGeometry的参数呈现,这种⽅式后⾯的⽂章中做会更多的说明,这⾥就不多介绍了。在GeometryDrawing中呈现可以作为ry的参数呈现为Drawing对象

当然,Drawing对象也不能独⽴呈现,⼀般是作为DrawingBrush或作为awing的参数来使⽤的

其它⽤途:作为参数裁剪控件 <>   另外,也常⽤在ometry和ip中裁剪图像。作为DoubleAnimationUsingPath. PathGeometry属性⽣成路径动画 可以将 对象定义的⼏何路径旋转(转动)对象的路径。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689717771a280657.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信