发明名称 折纸结构的实现及应用方法
摘要 一种计算机图像处理技术领域的折纸结构的实现及应用方法,通过在一个三维坐标系的x-z平面中确定m个点坐标并在y-z平面确定n+2个点坐标后,将所有相邻顶点之间用直线连接,每三个收尾相连的连接线段即构成一个平面,所有连接线段构成三维折纸结构;然后将三维折纸结构中的顶点坐标映射为二维平面中的顶点坐标,再将二维平面中的相邻顶点连接得到所述三维折纸结构的平面折纹图案,将该平面折纹图案中的线段及顶点投影至平面板材上,并进一步加工得到所需的三维折纸结构。本发明易于在计算机中编程实现,可在三维空间中直接设计得到诸多几何外形的精确折纸结构。
申请公布号 CN104376132A 申请公布日期 2015.02.25
申请号 CN201310354635.7 申请日期 2013.08.14
申请人 上海交通大学 发明人 周翔;Y·衷;汪海
分类号 G06F17/50(2006.01)I;G06T17/00(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 上海交达专利事务所 31201 代理人 王毓理;王锡麟
主权项 一种折纸结构的实现方法,其特征在于,包括以下步骤:步骤1,在一个三维坐标系的x‑z平面中确定m个点坐标,即<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>i</mi><mi>x</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mi>i</mi><mi>x</mi></msubsup></mtd><mtd><mn>0</mn></mtd><mtd><msubsup><mi>z</mi><mi>i</mi><mi>x</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>;</mo></mrow>]]></math><img file="FDA00003664732200000118.GIF" wi="401" he="62" /></maths>并在y‑z平面确定n+2个点坐标,即<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>y</mi><mi>j</mi><mi>y</mi></msubsup></mtd><mtd><msubsup><mi>z</mi><mi>j</mi><mi>y</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow>]]></math><img file="FDA0000366473220000011.GIF" wi="388" he="102" /></maths>表示,其中:i=1,2,...,m,j=0,2,...,n+1;然后根据m+n+2个坐标确定m×n个顶点坐标,作为目标折纸结构的顶点,即:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>V</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>+</mo><mo>[</mo><msub><mi>A</mi><mi>j</mi></msub><mo>]</mo><msubsup><mi>V</mi><mi>i</mi><mi>x</mi></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000012.GIF" wi="552" he="178" /></maths>i=1,2,...,m;j=1,2,...,n,其中:矩阵[A<sub>j</sub>]是一个3×3的矩阵,<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mo>[</mo><msub><mi>A</mi><mi>j</mi></msub><mo>]</mo><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msup><mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></msup><mfrac><mrow><msub><mrow><mi>cos</mi><mi>&theta;</mi></mrow><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>cos</mi><msub><mi>&theta;</mi><mi>j</mi></msub></mrow><mrow><mi>sin</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>&theta;</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msup><mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></msup><mfrac><mrow><mi>sin</mi><msub><mi>&theta;</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>sin</mi><msub><mi>&theta;</mi><mi>j</mi></msub></mrow><mrow><mi>sin</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>&theta;</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000013.GIF" wi="733" he="268" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mrow><mi>sin</mi><mi>&theta;</mi></mrow><mi>j</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>i</mi><mi>z</mi></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>V</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>-</mo><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mi>V</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>-</mo><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000014.GIF" wi="412" he="142" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>cos</mi><msub><mi>&theta;</mi><mi>j</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>i</mi><mi>y</mi></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>V</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>-</mo><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mi>V</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>-</mo><msubsup><mi>V</mi><mi>j</mi><mi>y</mi></msubsup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000015.GIF" wi="422" he="140" /></maths>i<sub>y</sub>=[0 1 0]<sup>T</sup>为y坐标轴的单位向量,i<sub>z</sub>=[0 0 1]<sup>T</sup>为z坐标轴的单位向量,||■||表示对向量取模;步骤2,将所有相邻顶点,即{V<sub>i,j</sub> V<sub>i+1,j</sub>}以及{V<sub>i,j</sub> V<sub>i,j+1</sub>}之间用直线连接,每三个收尾相连的连接线段即构成一个平面,所有连接线段构成三维折纸结构;步骤3,将三维折纸结构中的顶点坐标V<sub>i,j</sub>映射为二维平面中的顶点坐标<img file="FDA0000366473220000016.GIF" wi="102" he="82" />即<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mover><mi>x</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd><mtd><msub><mover><mi>y</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000017.GIF" wi="381" he="83" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mover><mi>V</mi><mo>~</mo></mover><mn>1,1</mn></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow>]]></math><img file="FDA0000366473220000018.GIF" wi="322" he="77" /></maths><img file="FDA0000366473220000019.GIF" wi="834" he="116" />i=2,...,m,<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>+</mo><mo>|</mo><mo>|</mo><msub><mi>V</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>V</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>|</mo><mo>|</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA00003664732200000110.GIF" wi="674" he="110" /></maths>i=1,...,m;j=2,...,n,其中:<img file="FDA00003664732200000111.GIF" wi="901" he="126" /><img file="FDA00003664732200000112.GIF" wi="243" he="69" />然后将二维平面中的相邻顶点<maths num="0010" id="cmaths0010"><math><![CDATA[<mfenced open='{' close='}'><mtable><mtr><mtd><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd><mtd><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA00003664732200000113.GIF" wi="269" he="82" /></maths>以及<maths num="0011" id="cmaths0011"><math><![CDATA[<mfenced open='{' close='}'><mtable><mtr><mtd><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mtd><mtd><msub><mover><mi>V</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA00003664732200000114.GIF" wi="262" he="81" /></maths>用直线段连接起来,即得到所述三维折纸结构的平面折纹图案,将该平面折纹图案中的线段及顶点投影至平面板材上,并进一步加工得到所需的三维折纸结构。
地址 200240 上海市闵行区东川路800号