急!大家给点思路

yishuangshou1 2010-10-21 09:51:32
用C#做一个画笔工具,具体要求是:当画出的线是曲线时要求调整为直线,如果曲度大则调整为圆
...全文
166 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
l4kangaxx 2010-10-21
  • 打赏
  • 举报
回复
我只能先假设lz已经解决了"画线"的工作,而且画线的方法不是photoshop或者word里面那种操作者点出3点或更多的点,然后软件自动算出曲线的方案(废话,都自动算出曲线来了,还要我们设计啥)
其次我想到的算法的效率受到lz设计的画线的方法限制,如果lz你画线时可以点上无数个转折点,没有数量上限的话,那我建议还是别搞了,可能会很慢

上面是题外话,其实思路很简单,就是将曲线的起点,终点,以及操作者点选的某个点,组成一个三角型,计算起点角和重点角,只要其中有一个过大(比如40度,具体得有你自己看了)那这条就需要调整成圆形,否则另选一个点,再此组成三角型来计算,直到这个三角构图计算涵盖所有操作者选中的点(或者已经中途调整成了一个圆)
yidongliange4 2010-10-21
  • 打赏
  • 举报
回复
还有你这个画笔可能要自己封装了,在每次画一条线时,你这个画笔要记录他自己每一次工作所画的点的个数以及点前面的线路。
yidongliange4 2010-10-21
  • 打赏
  • 举报
回复
你如果是画笔的话就是两个两个点在一起的,算法一样
yidongliange4 2010-10-21
  • 打赏
  • 举报
回复
鼠标单击第一次,作为第一个点(起点),当鼠标移动到另一个点单击为第二个点,前两个点一定为直线。
鼠标继续移动到第三个点单击时分2中情况:1:第三个点与前两个点所组成的直线形成的角度大于45度时,把第二个点和第三个点用半圆连接;2:如果小于45度用直线连接。
当鼠标继续移动到第四个点时,如果前面第三个点连的是曲线,那么第三个点和第四个点是直线,否则做类似第三个点的判断
sunrenbinhaijie 2010-10-21
  • 打赏
  • 举报
回复
等待!
qinzhuhua 2010-10-21
  • 打赏
  • 举报
回复
感觉很难,关注.......
xjtrab 2010-10-21
  • 打赏
  • 举报
回复
等待高手出现
ysz89757 2010-10-21
  • 打赏
  • 举报
回复
qqrto 2010-10-21
  • 打赏
  • 举报
回复
关注。。。。。。。
shadan05 2010-10-21
  • 打赏
  • 举报
回复
web? 还是winform?
龍月 2010-10-21
  • 打赏
  • 举报
回复

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧