写点啥-智慧黑板
作者:互联网
今晚有点睡不着,随便写点啥吧,有一段时间没上班了,刚离职那会面了两家公司,基本没怎么谈我就走了,因为要笔试,呵呵。不是怕笔试,是因为看到笔试的题目就没了食欲,各种sql统计,行转列等等,这些sql统计考点就两点,其一行集合的构建输出模型(这个我相信一般都知道),其二就是熟悉那些关键字。我也面过不少人,从来不会说要求职者写概念和业务性的东西,最多写个单列、排序、链表、再深一点二叉、红黑。当然这些只要写伪代码,有思想就行,可能有朋友会说,红黑都来了,装逼吧?,呵呵,我也是菜鸟,实话实说写业务系统很少会用到它,但是如果写公共底层一点的东西,没这些数据结构还真不行,即便你能把功能实现,那也是相当脆弱的,就算勉强可以,后期基本谈不上维护了,一动就跨了,性能也会让人担忧。再后来工作就没去找了,中间也有老东家找我,在这非常感谢老东家的认可。这几天有点激动,以前的一个领导要我去他的另外一家公司看看,因为当年跟他混的时候,给了我团队,给了我职位,给了我全新的项目,后来在编码阶段没过多久我就离职了,后面回过头想想,那很不负责任,leader说走就走,同时也留下了遗憾,没能坚持把那个项目做完,歉意了领导的信任。
下面简单说下我现在做的东西,智慧黑板,我相信在教育领域,以后老师教学,不管是多媒体教学还是普通教学,黑板都会被这样的产品替代,我也没具体去学校了解,可能现在就已经大规模应用了。在这个行业做的比较好的应该是西沃和网易,西沃好像软件硬件一起做。这个产品(暂时这么叫吧,因为我还没做完,太庞大了)是我两年前就写了一部分,当时是写完k线之后写的,当时写的授课端,因为备课端般蛮的话可以集成ppt的组件实现,当然那太low了。智慧黑板我目前是参考西沃的产品,分为两大块,备课端和授课端,可以这么理解,备课端就是制作ppt,授课端就好比播放ppt,当然没有ppt那么强大。今天主要是简单介绍下备课端这边的功能以及简单实现,下次介绍授课端,下面我截了一张图,把我做的备课端大部分功能都写上去了。
智慧黑板我这边是基于wpf net4.5 prism mvvm框架开发,好像现在比较老了吧,具体不清除很久没关注wpf winform了,样式丑了点,将就看吧,wpf style tigger我的硬伤啊,不熟,哈哈。后续再花时间写样式吧。备课端的功能模块,大概分四块,左边导航页,上面菜单,有按钮和下拉,后边属性和动画,属性主要针对文本和2dPath,动画部分我还没做,反正就是固定的那几种,比如百叶窗等等,中间就是画板了,所有东西最后绘制在这个画板上面,可以任意拖动,旋转。这上面的主要功能我还差3d,3d有一定的专业知识,后续再完善。下面简单介绍下功能实现。 文本编辑器,wpf文档流api相较winform丰富多了,以前扩展过winform的richbox,那是相当痛苦,各种查api,win消息,hook等。文本编辑器支撑的数据结构主要是红黑树(包括段落,文字等都应用了红黑树),因为红黑自平衡的特点,在搜索索引方面性能很好,其实文本编辑器背后的结构就是一堆索引,而且是内存数据结构。这里我在文本字符串上面也应用了红黑树,不知道是否合理,大数据我也没测试,后续再优化吧。 表格,看上去像datagrid吧,其实这个表格就是原生文档流实现的,跟上面的文本编辑器有类似,里面的合并单元格都是自己手撸的,没有接口。 形状,比较简单算规矩,通过path绘制,path强大到能模拟3d,简单的3d,只是如果使用path画简单3d,就会失去wpf对3d的一些特性支持。 统计,这个是用的三方组件,其实自己去实现简单的也很简单。 思维导图,做这种很不规则的东西,建议大家不要一上来就是考虑哪些情况,这种完全没规则的东西,只能通过算法解决,尽量优化到没有ifelse。思维导图我用的是双向链表(当然它是个变种链表),刚开始用的树,后面发现增删节点很大可能,导致全局绘制,因为它需要自平衡,节点不能往一边跑,导图的左边也可以增删节点哦。 元素在画板上的拖拽,缩放,这个我用的是老外的,稍微扩展了一点功能。 简单介绍就到这吧,因为这不是最终版本,很多地方需要优化,说深入了可能反而起了误导作用,有细节问题可以私信我,最后这个东西比较庞大,要打造成产品,需要时间和人力。最后打个小广告,k线组件,基于winform gdi+绘制,性能媲美c++,客户用了都说好,有需要的可以联系我。 好了就到这吧。
智慧黑板我这边是基于wpf net4.5 prism mvvm框架开发,好像现在比较老了吧,具体不清除很久没关注wpf winform了,样式丑了点,将就看吧,wpf style tigger我的硬伤啊,不熟,哈哈。后续再花时间写样式吧。备课端的功能模块,大概分四块,左边导航页,上面菜单,有按钮和下拉,后边属性和动画,属性主要针对文本和2dPath,动画部分我还没做,反正就是固定的那几种,比如百叶窗等等,中间就是画板了,所有东西最后绘制在这个画板上面,可以任意拖动,旋转。这上面的主要功能我还差3d,3d有一定的专业知识,后续再完善。下面简单介绍下功能实现。 文本编辑器,wpf文档流api相较winform丰富多了,以前扩展过winform的richbox,那是相当痛苦,各种查api,win消息,hook等。文本编辑器支撑的数据结构主要是红黑树(包括段落,文字等都应用了红黑树),因为红黑自平衡的特点,在搜索索引方面性能很好,其实文本编辑器背后的结构就是一堆索引,而且是内存数据结构。这里我在文本字符串上面也应用了红黑树,不知道是否合理,大数据我也没测试,后续再优化吧。 表格,看上去像datagrid吧,其实这个表格就是原生文档流实现的,跟上面的文本编辑器有类似,里面的合并单元格都是自己手撸的,没有接口。 形状,比较简单算规矩,通过path绘制,path强大到能模拟3d,简单的3d,只是如果使用path画简单3d,就会失去wpf对3d的一些特性支持。 统计,这个是用的三方组件,其实自己去实现简单的也很简单。 思维导图,做这种很不规则的东西,建议大家不要一上来就是考虑哪些情况,这种完全没规则的东西,只能通过算法解决,尽量优化到没有ifelse。思维导图我用的是双向链表(当然它是个变种链表),刚开始用的树,后面发现增删节点很大可能,导致全局绘制,因为它需要自平衡,节点不能往一边跑,导图的左边也可以增删节点哦。 元素在画板上的拖拽,缩放,这个我用的是老外的,稍微扩展了一点功能。 简单介绍就到这吧,因为这不是最终版本,很多地方需要优化,说深入了可能反而起了误导作用,有细节问题可以私信我,最后这个东西比较庞大,要打造成产品,需要时间和人力。最后打个小广告,k线组件,基于winform gdi+绘制,性能媲美c++,客户用了都说好,有需要的可以联系我。 好了就到这吧。
标签:文本编辑,备课,智慧,黑板,写点,简单,wpf,3d 来源: https://www.cnblogs.com/adair-blog/p/13383379.html