多边形填充 c语言 Easy-X

一、 实验目的。

使用改进的X扫描线算法进行多边形的填充。

二、 实验工具

VC6.0

三、 实验步骤

1.首先了解多边形填充
输入:多边形顶点序列输出:最佳逼近这个多边形的像素点集

利用X-射线扫描思想:确定多边形所占用的最大扫描线数,得到多边形顶点max, min从Ymax移动到Ymin

然后进行一些 求交,排序,配对,着色。

在求交排序中采用y向连贯性算法进行改进。

**2.学习y向连贯性算法的大概思路:
** 优先
X | Ymax | 1/k | next
交点递增;交点相同,则增量递增
变成有效边表(开始为空的删除无效边之后的表)
X | Ymax | 1/k | next
X+1/k | Ymax | 1/k | next(y向递增)
(考虑到由于链表可能会很复杂,所以会用结构体代替链表。)

3.建立一个工程文件,将思路转化为c编程语言,进行编译。

代码如下:	
#include <windows.h>
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <string.h>
#include <queue>  
using namespace std;

struct XET   //定义了一个结构体存储来边表
{
   
	float xmin,ymax,ymin,dx;  
//dx=1/k, ymin为了扫描的时候判断扫描线是否在ymax和ymin之间
}pNET[1024];

struct node    //定义扫描线与边的交点
{
   
	float x,y;
}point[1024];

drawColor(float a,float b,int y)
{
   
	int x;
	for(x=a+0.5;x<=b+0.5;x++)
	putpixel(x,y,RED);   //  在指定位置画一红的像素
}
priority_queue<float,vector<float>,greater<float> >s;
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue、konva标注多边形和矩形是指在vue框架下使用konva库实现对多边形和矩形进行标注的一种解决方案。 在demo2.0中,我们可以首先使用vue-cli创建一个新的vue项目,并安装konva库。接下来,在项目中引入konva库,并创建一个konva舞台(Stage)和一个konva层(Layer),用于显示多边形和矩形。 对于多边形标注,我们可以监听用户的鼠标点击事件,并使用konva的Line组件来绘制多边形。当用户点击时,我们可以记录下鼠标的坐标,并将其添加到多边形的坐标数组中。同时,我们还可以在每次点击后重新绘制多边形,显示出用户已经绘制的线段。 对于矩形标注,我们可以监听用户的鼠标按下和抬起事件,并分别记录下按下和抬起时的鼠标坐标。在按下和抬起时,我们可以使用konva的Rect组件来绘制矩形,并根据按下和抬起的坐标计算出矩形的宽度和高度。 除了标注绘制外,我们还可以对绘制的多边形和矩形进行编辑和删除。例如,我们可以监听用户的鼠标双击事件,并根据鼠标的位置找到用户点击的多边形或矩形。然后,我们可以在选中的多边形或矩形上显示编辑手柄,并监听手柄的拖拽事件,实现对多边形或矩形的位置、大小的编辑。同时,我们可以提供一个删除按钮,用户点击后可以将选中的多边形或矩形删除。 总之,vue、konva标注多边形和矩形的demo2.0提供了一个方便实用的工具,可用于在图形界面上进行多边形和矩形的标注,并具备编辑和删除功能。通过这种方式,用户可以更加直观地进行图形标注和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值