请问谁知道怎么用c语言或者c++来实现扫描线种子填充算法的代码! 1C

请问谁知道怎么用c语言或者c++来实现扫描线种子填充算法的代码!不用graphics.h的,而是用glut的,急,在线等!

3个回答

opencv,或者opengl里面应该有哇

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
计算机图形学 扫描线种子填充算法c#实现
计算机图形学 扫描线种子填充算法实现 1、初始化堆栈。   2、种子压入堆栈。   3、while(堆栈非空)     {      (1)从堆栈弹出种子象素。      (2)如果种子象素尚未填充,则:       a.求出种子区段:xleft、xright;       b.填充整个区段。       c.检查相邻的上扫描线的xleft≤x≤xright区间内,是否存在需要填充的新区段,如果存在的话,则把每个新区段在xleft≤x≤xright范围内的最右边的象素,作为新的种子象素依次压入堆栈。       d.检查相邻的下扫描线的xleft≤x≤xright区间内,是否存在需要填充的新区段,如果存在的话,则把每个新区段在 xleft≤x≤xright范围内的最右边的象素,作为新的种子象素依次压入堆栈。     }
c++实现扫描线填充算法
c++实现扫描线填充算法,实现逐行扫描并且填充区域内容
种子填充算法(简单和扫描线)
简单的种子填充算法扫描线种子填充算法种子填充算法的思路就是通过区域的一点赋予指定的颜色,然后通过填充其周围的像素点,从而讲填充颜色扩展到整个颜色区域的过程。如何画图我们已经知道有很多工具可以拿来画图,比如MFC或者是OpenGL都是画图很好的手段。这两个都是拥有很多适应方法的软件接口。但是我使用的是Easyx这个更加方便便捷的工具。该工具可以在如下页面下载,安装至相应的编译器即可。 http:/
计算机图形学(三)扫描线多边形填充算法讲解与源代码
如果喜欢转载请标明出处: 并非菜鸟菜鸟的博客 源代码下载:点击打开链接 在这里先说下算法的实现过程 本人觉得这个算法实现起来还是有点难度的!很多人都不愿意去看太多描述性的文字,所以对这个算法的过程是什么大概也不知道,那么我在这里简要的说一些! 算法实现过程中应用两个数据结构: 1、边表(ET:Edge Table) 用来对除水平边外的所有边进行登记,来建立边的记录。边的记录定
计算机图形学 - 扫描线种子填充算法
算法描述:   种子填充算法原理和程序都很简单, 但由于多次递归, 费时、费内存, 效率不高。为了减少递归次数, 提高效率可以采用扫描线种子填充算法。算法的基本过程如下: 当给定种子点( x, y) 时, 首先填充种子点所在扫描线上的位于给定区域的一个区段, 然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段, 并依次保存下来。反复这个过程, 直到填充结束。   区域填充的扫描线
扫描线种子填充算法
扫描线种子填充算法         1.1和1.2节介绍的两种种子填充算法的优点是非常简单,缺点是使用了递归算法,这不但需要大量栈空间来存储相邻的点,而且效率不高。为了减少算法中的递归调用,节省栈空间的使用,人们提出了很多改进算法,其中一种就是扫描线种子填充算法。扫描线种子填充算法不再采用递归的方式处理“4-联通”和“8-联通”的相邻点,而是通过沿水平扫描线填充像素段,一段一段地来处理“4-
opengl 种子填充算法
种子填充算法一种区域填充递归算法,分为: 1)四连通: 从区域内一点出发,分别从上,下,左,右移动判断该像素点与要填充的颜色是否相同。如果不同则变为填充颜色。如果该点为边界颜色则结束换另一个方向。 2)八连通: 从区域内一点出发,分别从上,下,左,右,左上,左下,右上,右下移动判断该像素点与要填充的颜色是否相同。如果不同则变为填充颜色。如果该点为边界颜色则结束换另
扫描线填充多边形算法详解与代码
扫描线填充多边形算法详解与代码首先给出已知信息:多边形结构体里面包含三个信息:顶点个数,顶点和颜色class MyPolygon { public: int m_VerticeNumber; CPoint m_Vertex[50]; COLORREF m_LineColor; }思路:   找到多边形的最小y值和最大y值,然后用这个范围内的每一条水平线与多边形相交,通过
Java编写图形学的种子填充算法
用C写的图形学填充算法已经很多了,看到不少帖子都是在问关于如何用Java编写图形学的填充算法,说来也巧,我刚好要做一个这个方面的实验,用的是扫描线种子填充算法,由于时间仓促,代码质量可能不算很高,希望大家见谅,并希望大家都来为我指点一下,小弟不胜感激~~好了,废话就不说了,我们先一起来看一下相关的知识~扫描线种子填充算法思想  首先填充种子所在的尚未填充的一区段,然后确定与这一区段相邻
区域填充:扫描线种子填充算法应用(类似魔术棒功能)
/* * * 算法的基本过程如下: * 当给定种子点(x, y)时, * 首先分别向左和向右两个方向填充种子点所在扫描线上的位于给定区域的一个区段, * 同时记下这个区段的范围[xLeft, xRight], * 然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段, * 并依次保存下来。反复这个过程,直到填充结束。 * * 四个
计算机图形学填充算法,使用OpenGL+MFC实现
程序功能介绍: 本程序是在上次的画直线、画圆的程序上修改的,添加了扫描线填充算法,使用OpenGL+MFC实现。 填充算法的使用说明: 1、选择菜单中的“种子填充”--〉“鼠标画边界”,然后在绘图区域左键点击若干个点作为多边形的顶点,最后点击右键来表示选点结束,点击右键之后,屏幕上会将这些点按顺序连成多边形。 2、选择菜单中的“种子填充”--〉“开始填充”,然后左键点击多边形内任意一点(给定种子),本程序会立刻用种子填充算法将多边形内部填充 3、如果要再次画多边形,请再次选择“种子填充”--〉“鼠标画边界”
matlab编写的扫描线算法填充多边形
用matlab编写的 扫描线算法可填充任意多边形 动态演示 如果不想动态也可把其中的pause()去掉
区域填充之扫描线种子法的Python实现
前言最近在帮学长做语义地图导航与规划,遇到了这样的问题。 将学长分割好的地图里的每一个白色区块标识出来,以便于后面语义地图的导航。 最开始我想到了种子法,但是由于使用了递归,当地图规模增加时程序就跑不起来了,(Python默认最大递归次数为1000次,即使用sys.setrecursionlimit()强行设置成很大的数最多也只能递归20000多次便会崩溃,而MATLAB的递归更是慢的抠脚)
C语言实现的扫描线种子填充算法
/***************************************************************本程序实现区域填充功能,首先输入多边形顶点的个数,回车,然后依次输入各顶点的坐标格式如下:100,123回车一定要在中间用逗号隔开噢,输完最后一个点后,屏幕上会依次画出各条边,最后填充满.程序还不完善,比如颜色值应该用变量表示以易于修改,画多边形和求种子点应该做成独立的函
MFC下实现图形学之多边形扫描转化填充算法
//*************************//获取点中y坐标最大值//*************************int CPolygonFillView::GetMaxY(){ int result = points[0].y; for(int i = 1; i   if(result           result = points[i].y;  return result
多边形的填充——扫描线算法(原理)
多边形在计算机中有两种表示:点阵表示和顶点表示。顶点表示是用多边形的顶点的序列来描述多边形,该表示几何意义强、占内存少,但它不能直观地说明哪些像素在多边形内。点阵表示是用位于多边形内的象素的集合来刻划多边形,该方法虽然没有多边形的几何信息,但具有面着色所需要的图像表示形式。 多边形填充就是把多边形的顶点表示转换为点阵表示,即从多边形的给定边界出发,求出位于其内部的各个像素,并将帧缓冲器内的各个对
种子填充算法
1、递归填充    考虑四连通区域,坐标系x轴朝右为正,y轴朝下为正 void Fill4(CPoint point, int nOldColor, int nNewColor)...{    if(GetPixel(point) == nOldColor)    ...{        //填充左边的点         CPoint ptLeft = point;        
matlab中种子填充算法
因为作业要求用简单种子填充和线扫描填充,所以在网上找了一个用matlab写的简单种子填充算法。https://www.cnblogs.com/tiandsp/archive/2012/12/06/2806186.html#undefined以下是具体程序:clear all;close all;clc;img=imread('liantong.bmp');img=img>128;img=ma...
种子填充算法(计算机图形学)
#include #include using namespace std; //种子填充算法四联通算法 int BoundaryFill(int x, int y) { int c=0; c=getpixel(x,y); if(c!=WHITE) {  putpixel(x,y,WHITE); } if(c==WHITE)
多边形区域的扫描线填充、扫描线种子填充算法实现
实现了图形学中,多边形区域的扫描线填充、扫描线种子填充算法实现,用MFC
c实现的扫描线填充算法
用C语言实现的扫描线填充算法,可快速填充任意多边形
用宏定义实现注释符号
实现方法: #define DEBUG #ifdef DEBUG #define DebugOut UartOut #else #define DebugOut /\ /UartOut #endif   谢谢原作者分享 引用原作者:http://hi.baidu.com/zj41342626/item/b48cc30e08bee139f2eafc5a 巧用C语
图形学种子填充算法 C语言实现,具有参考价值
图形学种子填充算法 C语言实现,具有参考价值
openGL-扫描线填充算法
说明把最近一系列的图形学经典算法实现了一下。课业繁忙,关于该系列的推导随后再写。但是在注释里已经有较为充分的分析。分情况讨论注意对于横线需要特别讨论,但是对于垂直线却不必特别讨论。想一想为什么?代码#include <iostream> #include <GLUT/GLUT.h> #include <map> #include <vector> #include <list> #include <
CRC算法原理及C语言实现 可算找到了!
<br />原文出自http://www.yuanma.org/data/2006/1010/article_1637_1.htmCRC原理介绍: CRC的英文全称为Cyclic Redundancy Check(Code),中文名称为循环冗余校验(码)。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。 <br /><br />     CRC计算与普通的除法计算有所不同。普通的除法计算是借位相减的,而CRC计算则是异或运算。任何一个除法运算都需要选取一个除
区域填充的扫描线算法
区域填充的扫描线算法适用于内点表示的4连通区域。算法的基本过程是:给定种子点(x, y),先填充种子点所在扫描线上的位于给定区域的区段,然后确定与该区段相连通的上下两条扫描线上的位于给定区域的区段,并保存下来。对保存下来的区段,反复这个过程,直到没有要处理的区段为止。 如下图所示: 一个原来是灰色的田字和三角形区域,使用鼠标在区域里面点击一下,就会被填充为青色。 以下是填充函数的主要代码
队列 c语言实现
1.导言 栈和队列是两种常见的线性表,栈因为只能在表的一端进行插入和删除,这种结构决定了栈后进先出的特性,队列也是一种受限的线性表,队列只能在表的一端进行插入,在表的另一端进行删除。允许插入的一端叫做队尾(rear),允许删除的一端被称之为队头(front)。这种结构决定了队列具有先进先出(FIFO)的特性.对队列来说,在我们日常生活中,随处可见。去食堂排队打饭,最早排队的人,最先拿着饭菜离开,
图形学画线画圆及填充
图形学画圆画线和扫描线种子填充算法的实现!
多边形的扫描转换之扫描线算法 c++实现 vc6.0控制台
多边形的扫描转换算法实现,是我《计算机图形学》的一个作业。多边形扫描算法有很多,比如,扫描线算法,边界标记算法,各种区域填充算法配合直线的扫描转换算法。起初我不打算用扫描线算法,因为在这么多算法里面,扫描线算法最复杂,所以采用了边界标记算法。不过边界标记算法有好几个难以解决的问题,首先,当边界的K(斜率)>1的时候,边界的像元数目是多于一的,所以很难处理,还有奇点问题也很难处理。弄了好久,效果都不
C语言实现2048(ege图形库版)
这几天看到我们班上一个大神写了一个2048出来,我自己也想尝试一下,经过几天自己尝试努力下,自己终于写出来了。现在和大家分享一下,也希望能得到大神的指点。 实现的效果如图 先来讲一下我的思路吧 首先肯定是要一个4X4的二维数组来存放数字存放0、2、4…… 游戏开始与过程中需要随机出现2或者4,所以需要调用time.h这个库 游戏开始时,假如当获取字符为‘w’则先用循环判定这个数字的下方有无和它相等的
c语言简易五子棋的实现
#include #include #include #include #define MAXIMUS 15 //定义棋盘大小 int p[MAXIMUS][MAXIMUS];//存储对局信息 char buff[MAXIMUS*2+1][MAXIMUS*4+3];//输出缓冲器 int Cx,Cy;//当前光标位置 int Now;//当前走子的玩家,1代表黑,2代表白 int wl
多边形填充——代码
typedef struct _IVT_TEDGE { float x; float dx; int ymax; struct _IVT_TEDGE* Next; }IVT_EDGE; /************************************************************************/ /* 函数名:CreateROIIma
for循环经典,鸡兔同笼问题
for循环经典,鸡兔同笼问题问题:鸡兔同笼,鸡兔一共35只。笼子里脚一共94只,请问分别有多少只鸡和兔? 思路:首先明确思路,鸡的数量*2加上兔子的数量*4等于脚的总数94,这是一个关键点, 代码很简单,但是关键的条件却要花很多时间去找,要是不明白的真的是很烦啊。 利用for循环列举出所有可能直到if满足条件, 列出表达式 鸡*2 加 兔*4 等于 脚总数94 ,这是if的判断条件,满足就可
C语言编写的图书管理系统
本系统为一个完整的图书管理系统,用C语言编写,有美观的界面并提供管理员与借阅者.......
扫描线填色算法的实现
扫描线填色算法的实现,计算机图形学资料,用C语言实现的。学生可以下载下来看一下
C语言实现只用加法和减法实现两个正整数的乘除运算
1、乘法a*b如下 #include #include int main() { int a,b; int i,result=0; scanf("%d%d",a,b); for(i=0; i<b; i++) { result = result+a; } printf("%d\n",result); return
C语言宏定义的学习------一个宏代表一段代码
开拓视野,以方便对代码的学习、研读和编写。 1\ #ifdef __MMI_BOOTUP_SCALE__ #define MMI_APP_INIT(func) {U32 start_time, end_time;\                             S8 func_name[] = #func;\                             kal_
C/C++: 实现加减乘除。
用C语言实现加减乘除。
c语言面试题及答案(转)
 c语言面试题及答案(1)2007-04-06 17:541.#include "stdio.h"int main(){int a;int *p;p = &a;*p = 0x500;//给a赋值a = (int )(*(&p));//取p的地址的内容给aa = (int )(&(*p));//取p指针的内容给aif(a == (int)p) 
扫描线zbuffer消隐算法
本片blog阐述了图形学中扫描线缓冲器消隐算法的原理和C++实现。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法