洪水填充算法_Unity 3D - 洪水填充/油漆桶算法不断崩溃引擎
我一直在试图编写一个在Unity中工作的洪水填充算法。这个想法是根据用户选择的颜色为黑白线条图上的部分着色。我已经尝试过几次洪水填充算法的实现,但是所有这些都会导致统一性在被调用时挂起。Unity 3D - 洪水填充/油漆桶算法不断崩溃引擎
对此的任何帮助都非常感谢,这是重要项目的一部分。根据实际情况修订代码,算法设计,或任何其他方法来得到这个工作的任何建议,将不胜感激:)
代码:
// FloodFill function
void FloodFill()
{
// TEST - colour the clicked pixel
//_tex.SetPixel((int)_pixelUV.x, (int)_pixelUV.y, m_fillColour);
//_tex.SetPixel(_pixelX, _pixelY, m_fillColour);
// FLOOD FILL
// ----------
// Create WestEast
List m_WestEast;
//get the pixel's colour
Color PC = new Color(_tex.GetPixel(m_StartNode.X, m_StartNode.Y).r, _tex.GetPixel(m_StartNode.X, m_StartNode.Y).g, _tex.GetPixel(m_StartNode.X, m_StartNode.Y).b);
//Record clicked pixel as point
Point node = new Point(m_StartNode.X, m_StartNode.Y);
//if the pixel's colour is boundary colour (black), return.
if(PC == Color.black)
{
return;
}
//else continue
// Create a list Q[]
m_List = new List();
//add clicked pixel to Q[]
m_List.Add(node);
//for each element in Q[]
for(int i=0; i
{
//create new WE[] and add Q[n] to it
m_WestEast = new List();
m_WestEast.Add(node);
//get pixel 1 to left (w) of Q[n]
Point w = new Point(node.X + 1, node.Y);
//get colour of w
Color wCol = new Color(_tex.GetPixel(w.X, w.Y).r, _tex.GetPixel(w.X, w.Y).g, _tex.GetPixel(w.X, w.Y).b);
while(wCol != Color.black)
{
//add pixel to WE[] and repeat
m_WestEast.Add(w);
//get new w
w = new Point(w.X + 1, w.Y);
//get colour of w
wCol = new Color(_tex.GetPixel(w.X, w.Y).r, _tex.GetPixel(w.X, w.Y).g, _tex.GetPixel(w.X, w.Y).b);
//else if colour is boundary colour
//go to next step
}
//get pixel 1 to right (e) of Q[n]
Point e = new Point(node.X - 1, node.Y);
//get colour of w
Color eCol = new Color(_tex.GetPixel(e.X, e.Y).r, _tex.GetPixel(e.X, e.Y).g, _tex.GetPixel(e.X, e.Y).b);
while(eCol != Color.black)
{
//add pixel to WE[] and repeat
m_WestEast.Add(e);
//get new e
e = new Point(e.X - 1, e.Y);
//get colour of e
eCol = new Color(_tex.GetPixel(e.X, e.Y).r, _tex.GetPixel(e.X, e.Y).g, _tex.GetPixel(e.X, e.Y).b);
//else if colour is boundary colour
//go to next step
}
//for each pixel in WE[]
for(int j=0; j
{
//set the pixel to replacement colour
_tex.SetPixel(m_WestEast[j].X, m_WestEast[j].Y, m_fillColour);
//get pixel 1 to north (n) of Q[n]
Point n = new Point(m_WestEast[j].X, m_WestEast[j].Y - 1);
//get colour of n
Color nCol = new Color(_tex.GetPixel(n.X, n.Y).r, _tex.GetPixel(n.X, n.Y).g, _tex.GetPixel(n.X, n.Y).b);
//if colour is not boundary colour
if(nCol != Color.black)
{
//add pixel to Q[]
m_List.Add(n);
}
//get pixel 1 to south (s) of Q[n]
Point s = new Point(m_WestEast[j].X, m_WestEast[j].Y + 1);
//get colour of s
Color sCol = new Color(_tex.GetPixel(s.X, s.Y).r, _tex.GetPixel(s.X, s.Y).g, _tex.GetPixel(s.X, s.Y).b);
//if colour is not boundary colour
if(sCol != Color.black)
{
//add pixel to Q[]
m_List.Add(s);
}
}
}
// ----------
}
洪水填充算法_Unity 3D - 洪水填充/油漆桶算法不断崩溃引擎相关推荐
- 洪水填充算法_Flood Fill (洪水填充、泛洪填充、油漆桶)算法Java循环实现(BFS方式,非递归)...
什么是Flood Fill (洪水填充.泛洪填充.油漆桶算法) 从一个区域中提取若干个连通的点与其他相邻区域区分开(或分别染成不同颜色)的经典算法. 因为其思路类似洪水从一个区域扩散到所有能到达的区域 ...
- java 画图油漆桶_Flood Fill (洪水填充、泛洪填充、油漆桶)算法Java循环实现(BFS方式,非递归)...
什么是Flood Fill (洪水填充.泛洪填充.油漆桶算法) 从一个区域中提取若干个连通的点与其他相邻区域区分开(或分别染成不同颜色)的经典算法. 因为其思路类似洪水从一个区域扩散到所有能到达的区域 ...
- 少儿编程150讲轻松学Scratch(十一)-用Scratch算法给矩形工具填充颜色
如何利用Scratch算法给矩形工具填充颜色? 题目描述:已知矩形的大小为n×m,现用a×a的正方形填充该矩形.输入三个正整数n,m,a(n,m,a≤10^3),计算至多能填入多少正方形?(正方形可以 ...
- 多边形区域填充算法--扫描线填充算法(有序边表法)
来源:https://blog.csdn.net/u013044116/article/details/49737585 二.扫描线算法(Scan-Line Filling) 扫描线算法适合对矢量图形 ...
- [论文学习笔记]01一种轮廓平行扫描算法【3D打印路径规划】
文章目录 零.论文来源 0.1 概述 一.算法描述 1.1 定义一些概念 1.2 域分区 1.3 偏移量的生成 1.4 自交问题 1.5 尖角 1.6 外部轮廓和内部轮廓相交 1.7 空隙 1.8 连 ...
- 简述3D点云配准算法
蝶恋花·槛菊愁烟兰泣露 槛菊愁烟兰泣露,罗幕轻寒,燕子双飞去. 明月不谙离恨苦,斜光到晓穿朱户. 昨夜西风凋碧树,独上高楼,望尽天涯路. 欲寄彩笺兼尺素.山长水阔知何处? --晏殊 导读: 3D点 ...
- CVPR2020论文介绍: 3D 目标检测高效算法
CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...
- ECCV2020 | Gen-LaneNet:百度Apollo提出两阶段的3D车道线检测算法,已开源
点击上方"3D视觉工坊",选择"星标 干货第一时间送达 这篇文章收录于ECCV2020,是百度Apollo团队发表的关于3D车道线检测的文章,针对3D-LaneNet做了 ...
- R语言ggpattern填充各种色彩、形状、纹理、图片到ggplot2可视化图像:图案填充列表、饼图图案填充、柱状图图案填充
R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot2可视化图像:图案填充列表.饼图图案填充.柱状图图案填充 目录
- R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板填充色、brewer调色板填充、灰度比例填充)实战(density plot)
R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板填充色.brewer调色板填充.灰度比例填充)实战(density plot) 目录
最新文章
- 同时打包多个场景_人机CP模式闯入“打包界”,智能设备让每一厘米纸箱物尽其用...
- springboot:banner.txt
- java 初始化一个实体对象_Java 对象初始化
- CFI/CFG 安全防护原理详解(ROP攻击、DOP攻击、插装检测)
- Python datetime timedelta
- 常用实验设计方法有哪些?
- python mql4_使用MQL5将OHLC值从Python API集成到MT5
- 企鹅吞狗,狗走狐悲,狼厂危矣
- filecoin-存储证明子系统(rust-fil-proofs)[翻译]
- 操作OMF(Oracle Managed Files,Oracle管理的文件)
- 山水之道第四境——精灵的飞天之舞
- 锚点是什么?锚点的使用
- java 虚函数表_虚函数表(vtable/virtual table/virtual method table)
- Oracle基本函数-大小写转换函数
- 中文拼音模糊查询的一种解决方法
- SecureCRT常用的几个命令
- stream流 lambda 练习
- Python教程:去除背景,我保证不动她一根头发(附多种方式)
- Navicat 入门教程
- Cmd批处理替换文件