发明名称 一种基于向量代数的简明软笔效果生成方法
摘要 本发明涉及一种基于向量代数的简明软笔效果生成方法。本发明方法首先对原始输入的点序列进行移除近似重复点操作,得到采样点序列,根据相邻采样点坐标位置的距离计算并修正得到每个中间点<img file="2011102692677100004DEST_PATH_IMAGE002.GIF" wi="17" he="25" />的笔宽;基于向量代数计算中间点<img file="295152DEST_PATH_IMAGE002.GIF" wi="17" he="25" />的切矢量<img file="DEST_PATH_IMAGE004.GIF" wi="25" he="25" />、法矢量<img file="DEST_PATH_IMAGE006.GIF" wi="29" he="25" />和<img file="DEST_PATH_IMAGE008.GIF" wi="32" he="25" />,并计算<img file="586325DEST_PATH_IMAGE006.GIF" wi="29" he="25" />的对应点<img file="DEST_PATH_IMAGE010.GIF" wi="25" he="25" />和<img file="804817DEST_PATH_IMAGE008.GIF" wi="32" he="24" />的对应点<img file="DEST_PATH_IMAGE012.GIF" wi="29" he="25" />,如果存在退化问题,则只计算结束点<img file="DEST_PATH_IMAGE014.GIF" wi="18" he="25" />的;如有退化问题,对点集S进行退化问题的处理得到点集C,如无退化问题,由点集S直接得到点集C;将点集C中的各点作为控制点用二次B样条曲线进行平滑拟合,绘制并填充该B样条曲线,得到最终的模拟效果。本发明方法无需额外数据的支持,从而最大程度的对数据进行压缩,获得更好的网络传输效率,取得更好的流畅性和笔锋笔润效果。
申请公布号 CN102332173B 申请公布日期 2013.03.27
申请号 CN201110269267.7 申请日期 2011.09.13
申请人 浙江万朋网络技术有限公司 发明人 刘鹏
分类号 G06T11/80(2006.01)I 主分类号 G06T11/80(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 1.一种基于向量代数的简明软笔效果生成方法,其特征在于该方法的具体步骤是: 步骤(1)对原始输入的点序列进行移除近似重复点的操作,去除坐标位置近似重复的点,得到采样点序列;采样点序列的起始点为P<sub>s</sub>、结束点为P<sub>e</sub>、中间点为P<sub>i</sub>,i为中间点的序号,1≤i≤u,u为中间点的个数; 步骤(2)根据相邻采样点之间坐标位置的距离计算每个中间点P<sub>i</sub>的笔宽Wp<sub>i</sub>,具体方法是: 根据需要,预设最大笔宽Wmax,计算中间点P<sub>i</sub>与前驱点P<sub>i-1</sub>的距离D, D=‖P<sub>i</sub>–P<sub>i-1</sub>‖ 设定Wnormal=Wmax-1 <img file="FDA00002368739900011.GIF" wi="477" he="107" />Wr=Wnormal-Wt Wnormal、Wt、Wr为中间值 <img file="FDA00002368739900012.GIF" wi="765" he="133" /><img file="FDA00002368739900013.GIF" wi="785" he="210" />;步骤(3)根据前驱点P<sub>i-1</sub>修正后的笔宽Wp<sub>i-1</sub>′修正中间点P<sub>i</sub>的笔宽Wp<sub>i</sub>,其中第一个中间点P<sub>1</sub>不作修正,直接作为修正第二个中间点P<sub>2</sub>的笔宽Wp<sub>2</sub>的依据; 具体方法是: 如果K&gt;Ku,则Wp<sub>i</sub>′=Wp<sub>i-1</sub>′×Ku 如果K≤Ku,则Wp<sub>i</sub>′=Wp<sub>i</sub>其中K为相邻两中间点笔宽比,K=Wp<sub>i</sub>/Wp<sub>i-1</sub>′ Ku为修正系数,Ku=1.05~1.15 Wp<sub>i</sub>′为修正后的中间点P<sub>i</sub>的笔宽 ;步骤(4)基于向量代数计算中间点P<sub>i</sub>的切矢量Tp<sub>i</sub>、两个法矢量Np<sub>i</sub>和Mp<sub>i</sub>; Tp<sub>i</sub>=P<sub>i</sub>–P<sub>i-1</sub>令‖Np<sub>i</sub>‖=‖Mp<sub>i</sub>‖=Wp<sub>i</sub>′ 计算Np<sub>i</sub>的对应点Sn<sub>i</sub>和Mp<sub>i</sub>的对应点Sm<sub>i</sub>, Sn<sub>i</sub>=P<sub>i</sub>+Np<sub>i</sub>Sm<sub>i</sub>=P<sub>i</sub>+Mp<sub>i</sub>对于只有起始点P<sub>s</sub>和结束点P<sub>e</sub>而没有中间点为P<sub>i</sub>情况,则计算结束点P<sub>e</sub>的切矢量Tp<sub>e</sub>、两个法矢量分别Np<sub>e</sub>和Mp<sub>e</sub>,以及Np<sub>e</sub>的对应点Sn<sub>e</sub>和Mp<sub>e</sub>的对应点Sm<sub>e</sub>,计算方法同上; 步骤(5)对于存在对于只有起始点P<sub>s</sub>和结束点P<sub>e</sub>而没有中间点P<sub>i</sub>的情况,则对点集S进行退化问题的处理得到点集C;此时S={Ps,Pe},定义点Cn<sub>1</sub>=(P<sub>s</sub>+Sn<sub>e</sub> )/2 点Cm<sub>1</sub>=(P<sub>s</sub>+Sm<sub>e</sub>)/2 C={Ps,Cn<sub>1</sub>,Pe,Cm<sub>1</sub>} 对于除起始点P<sub>s</sub>和结束点P<sub>e</sub>外,还有中间点P<sub>i</sub>的情况,由点集S直接得到点集C,其中S={Ps,Sn<sub>1</sub>,Sn<sub>2</sub>,…,Sn<sub>u</sub>,Pe,Sm<sub>u</sub>,Sm<sub>u-1</sub>,…,Sm<sub>2</sub>,Sm<sub>1</sub>}, C={Ps,Cn<sub>1</sub>,Cn<sub>2</sub>,…,Cn<sub>u</sub>,Pe,Cm<sub>u</sub>,Cm<sub>u-1</sub>,…,Cm<sub>2</sub>,Cm<sub>1</sub>}, Cn<sub>i</sub>=Sn<sub>i</sub>、Cm<sub>i</sub>=Sm<sub>i</sub>步骤(6)将点集C中的各点作为控制点用二次B样条曲线进行平滑拟合,绘制并填充该B样条曲线,得到最终的模拟效果。 
地址 310013 浙江省杭州市文三西路118号电子商务大厦15楼