如何实现自己的图形剪辑?

Posted

技术标签:

【中文标题】如何实现自己的图形剪辑?【英文标题】:How to implement my own graphics clipping? 【发布时间】:2013-05-13 10:58:22 【问题描述】:

我的计算机图形课程有一个任务。我必须创建一个具有以下功能的应用程序:

    屏幕上漂浮着一只海豚,用户可以四处移动, 海豚身上布满了某种图案; 底部有水波,填充了一些颜色,左右移动; 当海豚潜入海浪之下时,海豚与海浪的交汇处应填充一些不同的颜色。

任务是关于剪裁。我应该有自己的函数:myFill,它接受ColorPolygon 作为参数,myClip,它接受两个Polygons 并返回它们的交集。在myFill 我应该使用扫描线,这个函数的复杂度为 O(1)。

我的主要问题是 - 从哪里开始?我应该使用 Windows 窗体还是 WPF 来完成这项任务?如果我使用带有一些多边形的 WPF、Canvas(InkCanvas?)如何逐行填充它们?哪些课程会有帮助?

【问题讨论】:

【参考方案1】:

我建议你问老师。 WPF 和 Windows 窗体是“高级”图形库,内置提供多边形填充和剪切。你需要一些“低级”的东西,因为使用任何一个都会破坏作业的目的。

话虽如此,你可以使用它们,只要你避免高层次的东西。在 WPF 中,您可以使用 WriteableBitmap 类来访问单个像素。在 WinForms 中,您可以使用 PictureBox 和 Bitmap 来获得相同的功能。

【讨论】:

以上是关于如何实现自己的图形剪辑?的主要内容,如果未能解决你的问题,请参考以下文章

在特定阈值下调整 wpf 控件大小时出现不希望的剪辑

在flash如何制作一个的鼠标跟随特效

如何将 grob 剪辑到 grobTree 对象中

如何把一个视屏剪成左边一半和右边一半,

如何在 SwiftUI 中屏蔽/剪辑图像的底部?

用Delphi或易语言如何实现在屏幕区域里查找图形?