数学研发论坛

 找回密码
 欢迎注册
查看: 422|回复: 1

[求助] 曲线优化需求外包

[复制链接]
发表于 2018-2-22 21:38:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
大家好,公司有一个算法项目外包;算法框架源码我会提供,只要实现算法即可;我整理了一个文档,文档内容具体如下(有兴趣的人请帮忙直接联系我,谢谢!):

曲线优化需求文档
江工,电话:17666090116,
QQ:1224758460(大时代)
2018-2-4

一、        项目背景
        1.        产品主要针对手写屏,主要用于绘画;下面这个链接就是Wacom也是我们参考的产品:
http://www.wacom.com/zh-cn/products/pen-displays/cintiq-13-hd
        2.        这个设备会模拟真人书写效果,当书写轻时,感应压力就小,画出来的笔画就比较轻;当书写重时,感应压力就大,画出来的笔画就较浓。
        3.        我们产品的绘画效果截图:
          n1.png
        如上图,我们产品在绘制曲线的时候,不够圆滑。
二、        项目需求:
        1.        增加曲线优化算法,使绘制出来的曲线看起来足够圆滑
        2.        增加直线优化算法,当用在手写屏上架着尺子绘制直线的时候,使直线看起来非常直,没有扭曲。
        3.        当绘制的时候,会自动选择采用曲线优化还是直线优化(也许直线优化也是曲线优化的一种,那这样就只有一种算法了),然后修正。
        4.        采用C++实现,需提供所有源码以及算法文档,项目不能使用没有源码的第三方库。
        5.        项目源码可以编译成32位以及64位。
        6.        主要负责优化算法的实现,我们会提供项目框架的源码,你们把算法实现在框架里面即可。
三、        项目样品:
        1.        我们会提供一个参考厂家的设备以及驱动,以及我司的产品以及程序。
四、        项目术语:
        i.        落笔:笔尖接触手写面进行手写的过程
        ii.        抬笔:笔尖从手写面上离开的过程
        iii.        坐标:水平的手写屏拥有横坐标和纵坐标,屏幕左上角为坐标原点。由于硬件分辨率比屏幕分辨率更细腻,所以横坐标和纵坐标的最大值往往都是大于屏幕的分辨率的。
        iv.        压感:用笔进行书写时候的压力大小,当笔尖未接触时,压感为0;当正在书写时,是肯定有压感的,压感范围从1~Pmax,一般压感最大值为1023或2047,
        v.        压感级数(压感级别):当最大值压感为1023,加上0压感,就总共有1024种取值范围,这种压感级别就叫做1024级,常见的压感级别有512、1024、2048等级别。
五、        项目要求:
        1.        驱动级优化算法(较简单)
                i.        这个算法主要用在编译sys程序时使用,主要作用是在驱动层修改硬件坐标
                ii.        不能产生过渡点,只能修正当前的坐标点,使绘制出来的点符合曲线要求。
                iii.        当压感为0时,不需要优化
        2.        动态库级优化算法
                i.        这个算法主要用在中间件的动态库里面,主要作用是在无驱环境下向上一级程序(调用这个动态库的程序)上报坐标时,自动修改坐标,并能产生过渡点。
                ii.        需具备驱动级优化算法的所有功能
                iii.        两点之间智能插入过渡点(比如当两点距离过长时),使曲线过渡细腻
                iv.        在抬笔时,可以智能补偿理想抬笔点,举例如下:
                  n2.png
                如上图,蓝色为硬件报出来的点,但是在压感只到50%时,下一包数据就已经弹出;这样就在这包数据之前,模拟插入红色的点,这样看起来就很有笔尖。
        3.        应用级优化算法
                i.        这个算法主要用在应用程序软件,比如各类绘画软件就属于应用级优化算法的范畴
                ii.        需具备动态库级优化算法的所有功能
                iii.        应用程序是最终的绘画软件,它可以控制什么时候开始绘制,什么时候还不需要绘制,比如说它可以统计20ms里面的所有笔画,优化以后再一次性绘制出来。
                iv.        在落笔时,可以智能修正前面几个点的压感,这样看起来更有笔锋。
                v.        可以设置抖动修正级别(最大为20级),如下图:
                  n3.png
                级别n的意思,当产生一个新点的时候,就会统计之前n*10(ms)的这段时间内所有点(落笔后的连续有压感的点才算,已经抬笔的点不算),如果不足n*10ms,先不绘制,直至满足时间的时候一次性绘制出来(这样的曲线修正效果是最好的);如果产生一个新点的时候,之前已经有n*10ms的点,那么会根据之前n*10ms内的点以及这个点计算一个当前点的修正坐标出来。如果抖动修正级别n=0,那么就没有抖动修正。
                vi.        在统计时间这里,必须使用高精度延时timeGetTime来计算时差,不能使用GetTickCount函数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-2-25 16:51:24 | 显示全部楼层
没人回复吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2019-2-17 17:56 , Processed in 0.093647 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表