发明名称 手绘织布印花图案的计算机模拟方法
摘要 本发明属于计算机图形仿真技术领域,公开了一种手绘织布印花图案的计算机模拟方法,该方法包括步骤:构建织布网格;确定印花图案轮廓线;模拟染料填涂;进行建模:<img file="DDA00003117199100011.GIF" wi="1106" he="127" /></maths>其中,t表示时刻,C(t)是t时刻的染料浓度,S(t)表示t时刻添加的染料浓度;等式右侧依次是染料的添加项、扩散项、吸附项和蒸发项。本产品将移动互联网以及互联网上松散独立的服务进行了整合。与现有技术相比,本发明能够用于生成较为逼真生动的手绘织布印花图案,可以作为艺术图案创作、特效制作的设计工具。
申请公布号 CN103412969B 申请公布日期 2016.03.09
申请号 CN201310152344.X 申请日期 2013.04.27
申请人 天津大学 发明人 刘世光;陈迪
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 天津市北洋有限责任专利代理事务所 12201 代理人 李素兰
主权项 一种手绘织布印花图案的计算机模拟方法,其特征在于,该方法包括以下步骤:步骤一、采用二维N×N网格构建织布模型,其中N表示在水平和垂直方向的网格单元数目;该织布网格包括经线网格、纬线网格和空隙网格三种类型;设定每个网格的类型及相互位置关系,实现真实布料的经纬线交错模拟,根据相邻网格间的不同分布情况,定义5种相邻网格位置关系,即经线网格与经线网格位置关系,纬线网格与纬线网格位置关系,经线网格与纬线网格位置关系,经纬网格与空隙网格位置关系,及空隙网格与空隙网格位置关系,步骤二、定义一个与织布网格模型相对应的二维N×N印花图案轮廓边界网格,用来记录印花图案轮廓边界的位置,在提取印花图案轮廓边界点的同时,在其网格中标记印花图案轮廓边界点的坐标;输入印花图案,获取印花图案轮廓;如果输入是印花图案轮廓图像,则直接将其映射到印花图案轮廓边界网格;如果输入是普通的彩色图像,则首先对其进行轮廓提取,然后再将提取的结果图像映射到印花图案轮廓边界网格;步骤三、对染料填涂模拟进行建模<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mi>S</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>d</mi><mi>i</mi><mi>f</mi><mi>f</mi><mi>u</mi><mi>s</mi><mi>i</mi><mi>o</mi><mi>n</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi><mi>d</mi><mi>s</mi><mi>o</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>v</mi><mi>a</mi><mi>p</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000872113500000011.GIF" wi="1372" he="141" /></maths>t表示时刻,C(t)表示t时刻的染料浓度,S(t)表示t时刻添加的染料浓度;等式右侧依次表示染料的添加项、扩散项、吸附项和蒸发项,其中:定义圆状笔刷为基本图元,线型笔刷则由多个圆状笔刷叠加产生,计算染料的添加项的染料浓度初始值s(t)=(R(t)‑d(t)<sub>dis</sub>)·s(t)<sub>standard</sub>           (2)S(t)<sub>standard</sub>表示标准的染料浓度,R(t)是圆的半径,d(t)<sub>dis</sub>表示t时刻该处染料所在位置与圆中心的距离;基于主方向驱动的各项异性扩散模型对染料的扩散项进行模拟,得到<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mrow><mo>(</mo><mi>D</mi><mi>p</mi><mo>&CenterDot;</mo><mi>D</mi><mi>q</mi><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mrow><mo>(</mo><mi>D</mi><mi>p</mi><mo>&CenterDot;</mo><mi>D</mi><mi>q</mi><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000872113500000012.GIF" wi="1357" he="143" /></maths>x和y分别表示染料的当前位置与初始位置确定的向量在横轴和纵轴的投影;D<sub>p</sub>表示5种不同相邻网格关系所分别对应的扩散系数;D<sub>q</sub>表示主方向导致的染料在上、下、左、右四个方向上的扩散系数,分别记为:D<sub>up</sub>、D<sub>down</sub>、D<sub>lef</sub>t和D<sub>right</sub>;公式(3)中,D<sub>q</sub>的具体求解具体包括以下步骤:记录各圆形染料笔刷的圆心分别为P<sub>1</sub>(x<sub>1</sub>,y<sub>1</sub>)、P<sub>2</sub>(x<sub>2</sub>,y<sub>2</sub>),…,P<sub>n</sub>(x<sub>n</sub>,y<sub>n</sub>);依次计算向量P<sub>1</sub>P<sub>2</sub>即(x<sub>2</sub>‑x<sub>1</sub>,y<sub>2</sub>‑y<sub>1</sub>)与X轴正方向的夹角α<sub>1</sub>、向量P<sub>2</sub>P<sub>3</sub>即(x<sub>3</sub>‑x<sub>2</sub>,y<sub>3</sub>‑y<sub>2</sub>)与X轴正方向的夹角α<sub>2</sub>,并计算α<sub>2</sub>与α<sub>1</sub>之差,…,直到两相邻的夹角之差Δα(Δα=α<sub>k</sub>‑α<sub>k‑1</sub>,0<k<n)大于设定的夹角阈值α时,向量P<sub>1</sub>P<sub>k</sub>(x<sub>k</sub>‑x<sub>1</sub>,y<sub>k</sub>‑y1)所确定的方向为从P<sub>1</sub>到P<sub>k</sub>这段线形染料笔刷的主方向;若此时k=n‑1,则结束计算;否则,继续计算向量P<sub>k+1</sub>P<sub>k+2</sub>与X轴正方向的夹角α<sub>k+1</sub>,向量P<sub>k+2</sub>P<sub>k+3</sub>与X轴正方向的夹角α<sub>k+2</sub>以及两个相邻的夹角之差Δα,并进行判断是否产生新的主方向,依次重复进行,直到k=n‑1;计算结束后,依次输出各段主方向的向量,由此连接产生的分段直线段即为最终的主方向,得到设定上、下、左、右四个方向的扩散系数D<sub>up</sub>、D<sub>down</sub>、D<sub>left</sub>和D<sub>right</sub>,即<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>D</mi><mrow><mi>u</mi><mi>p</mi><mrow><mo>(</mo><mi>d</mi><mi>o</mi><mi>w</mi><mi>n</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><msub><mi>D</mi><mrow><mi>u</mi><mi>p</mi><mrow><mo>(</mo><mi>d</mi><mi>o</mi><mi>w</mi><mi>n</mi><mo>)</mo></mrow><mo>_</mo><mi>s</mi><mi>tan</mi><mi>d</mi></mrow></msub><mo>+</mo><mfrac><mrow><mi>d</mi><mi>y</mi></mrow><msqrt><mrow><msup><mi>dx</mi><mn>2</mn></msup><mo>+</mo><msup><mi>dy</mi><mn>2</mn></msup></mrow></msqrt></mfrac><mo>&times;</mo><msub><mi>D</mi><mrow><mi>u</mi><mi>p</mi><mrow><mo>(</mo><mi>d</mi><mi>w</mi><mi>o</mi><mi>n</mi><mo>)</mo></mrow><mo>_</mo><mi>s</mi><mi>tan</mi><mi>d</mi></mrow></msub></mrow>]]></math><img file="FDA0000872113500000021.GIF" wi="1081" he="126" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>D</mi><mrow><mi>l</mi><mi>e</mi><mi>f</mi><mi>t</mi><mrow><mo>(</mo><mi>r</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><msub><mi>D</mi><mrow><mi>l</mi><mi>e</mi><mi>f</mi><mi>t</mi><mrow><mo>(</mo><mi>r</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>)</mo></mrow><mo>_</mo><mi>s</mi><mi>tan</mi><mi>d</mi></mrow></msub><mo>+</mo><mfrac><mrow><mi>d</mi><mi>x</mi></mrow><msqrt><mrow><msup><mi>dx</mi><mn>2</mn></msup><mo>+</mo><msup><mi>dy</mi><mn>2</mn></msup></mrow></msqrt></mfrac><mo>&times;</mo><msub><mi>D</mi><mrow><mi>l</mi><mi>e</mi><mi>f</mi><mi>t</mi><mrow><mo>(</mo><mi>r</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>)</mo></mrow><mo>_</mo><mi>s</mi><mi>tan</mi><mi>d</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000872113500000022.GIF" wi="1297" he="143" /></maths>D<sub>dir</sub>表示D<sub>up</sub>、D<sub>down</sub>、D<sub>left</sub>和D<sub>right</sub>这四种由于主方向控制导致的扩散系数;D<sub>dir_stand</sub>表示上、下、左、右四个方向上的标准的扩散系数;根据Langmuir吸附理论,在判断织布网格是否达到最大吸附量后,计算染料的吸附量<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><msub><mi>C</mi><mrow><mi>a</mi><mi>d</mi><mi>s</mi><mi>o</mi><mi>r</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mi>a</mi><mo>&times;</mo><mrow><mo>(</mo><mi>K</mi><mo>&times;</mo><mo>(</mo><mrow><msub><mi>V</mi><mi>d</mi></msub><mo>-</mo><msub><mi>C</mi><mrow><mi>a</mi><mi>d</mi><mi>s</mi><mi>o</mi><mi>r</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub></mrow><mo>)</mo><mi>C</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>-</mo><msub><mi>C</mi><mrow><mi>a</mi><mi>d</mi><mi>s</mi><mi>o</mi><mi>r</mi><mi>p</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000872113500000023.GIF" wi="1357" he="150" /></maths>C<sub>adsorption</sub>(t)表示t时刻燃料的吸附量,a、K和V<sub>d</sub>表示吸附常数;计算染料中水分的蒸发量<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mi>C</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><mi>v</mi><mi>a</mi><mi>p</mi><mo>&CenterDot;</mo><mi>d</mi><mi>t</mi><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000872113500000024.GIF" wi="1110" he="135" /></maths>vap表示蒸发速率。
地址 300072 天津市南开区卫津路92号