gdi,c#,winform实现鼠标点击笔划自动绘制笔划的若干问题,求大神们给个思路

具体想要实现的效果类似:笔画自动书写

用firebug抓取到了"上"字的笔划信息如下:

shh###376,664;376,392;376,120;384,96;400,72;344,16;336,16;344,56;352,120;352,392;352,664#360,328;384,352;504,328;632,320;592,288;552,304;504,312#40,680;80,720;392,688;712,672;672,640;632,656;392,672


###336 16 344 16 360 32 340 33 343 49 375 48 391 63 345 65 347 81 396 79 385 96 349 97 352 113 379 112 376 129 352 130 352 146 376 145 376 161 352 162 352 178 376 177 376 194 352 195 352 211 376 210


376
226 352 227 352 243 376 242 376 259 352 259 352 276 376 275 376 291 352 292 352 308 376 307 376 324 352 324 352 341 376 340 376 356 352 357 352 373 376 372 376 388 352 389 352 406 376 405 376 421


 352
422 352 438 376 437 376 453 352 454 352 471 376 470 376 486 352 487 352 503 376 502 376 518 352 519 352 535 376 535 376 551 352 552 352 568 376 567 376 583 352 584 352 600 376 600 376 616 352 617


 352
633 376 632 376 648 352 649 352 664 376 664#360 328 360 328 377 327 380 349 398 350 394 325 411 323 414 347 431 343 428 321 444 319 447 340 464 337 461 317 478 315 481 333 497 330 495 314 511 311


 514
328 531 327 528 309 545 306 548 326 565 325 561 301 577 295 582 324 599 323 594 289 613 305 615 322 632 320 632 320#40 680 40 680 57 680 58 698 76 716 73 680 90 679 92 719 109 718 106 679 122 679


125
716 141 714 139 678 155 678 157 713 174 711 171 678 188 677 190 709 206 708 204 677 221 676 223 706 239 704 237 676 253 676 255 703 271 701 270 675 286 675 288 699 304 698 302 675 319 674 320 696


337
694 335 674 352 673 353 693 369 691 368 673 384 673 385 689 402 688 401 672 417 671 418 687 435 686 433 670 450 669 451 686 467 685 466 668 482 667 484 684 500 683 499 665 515 664 516 682 533 681


 531
663 548 662 549 681 565 680 564 661 580 660 582 679 598 678 597 659 613 658 614 677 631 677 629 657 645 651 647 676 663 675 661 645 678 645 680 674 696 673 695 659 712 672 712 672


稍微解析了下:该数据用'###','##','#',';',','进行分割,用"###"分割的信息依次是:笔画顺序(例如,hhs,是“上”的笔画顺序),字符单笔画轮廓关键点数
据,字符内部关键点数据利用c#+gdi获取单笔画轮廓关键点数据可以坐到,可是内部点阵数据怎么获取的,不知道,求大家给个思路,难道取单笔画存成位图,按照像


素取反?还有就是c#利用gdi+绘图的重绘问题,有闪烁,而且保存不了历史绘图记录,比如我点击鼠标响应事件,前一笔的绘制会消失。

欢迎多多指教,多谢大家了!

具体绘制过程如下:

1、使用的是先将字符轮廓绘制出来,简称paint_outline,再将单笔划轮廓点绘制出来,简称paint_singleStroke;

2、将paint_outline绑定到panel上,将paint_singleStroke绑定到鼠标点击时间上,再将鼠标点击事件绑定到panel上;

具体需要解决的问题:

1、窗口重绘。第一步运行程序后会绘制出字符轮廓,点击单笔画,单笔画轮廓线会绘制出来,点击下一笔,上一笔的绘制结果消失,检测了下,不仅仅是

绘制结果消失,而是窗口重绘了,即将两个paint事件又调用了一遍,我想达到的效果是,不需要重绘,且能保存历史绘制笔划(即点击下一笔,上一笔不消失)

2、延时。因为我的单笔轮廓是用笔划轮廓数据的点信息绘制出来的,所以我想说每连接一个点到下一个点时做个延时,就会有动画的效果,怎么实现。

3、笔划内部关键点或者点阵信息获取,最终想实现的是类似毛笔动画缓慢绘制的那种效果,所以,笔划内部点阵信息得到之后,利用关键点信息拓展绘制矩形,并加上稍微延迟,就会有动画效果。

期望大神多多指导啊,多谢了先!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值