WPF效果第二百篇之再玩Gamma曲线

前面效果中使用比较low的方式实现了2.4的Gamma曲线;虽说后面加了点动画呈现效果,但也就是个过渡版;今天才基本符合需求的效果:f34536bd983c5c5b1decf6f557ce93a4.gif

1、还是基于WPF效果第一百七十八篇之贝塞尔曲线他来实现的:

3个ListBox
3个LandmarkControl

2、在LandmarkControl增加插点位事件

View:LandmarkControl Points="{Binding Points}" x:Name="RedLandMark" PathColor="Red" MouseLeftButtonDown="LandmarkControl_MouseLeftButtonDown"/>

3、中间点的Insert:

PointViewModel newPointModel = new PointViewModel((float) newPoint.X, (float) newPoint.Y);
var pointsList = points.Select(it => new Rulyotano.Math.Geometry.Point(it.X, it.Y));
var insertIndex = Helpers.BestPlaceToInsert(newPoint, pointsList.ToList());
points.Insert(insertIndex, newPointModel);

4、最后就是限制在框内拖拽显示:

PathGeometry g = myPathGeometry.GetOutlinedPathGeometry();
 //进行处理修改点位
 foreach(var f in g.Figures) {
     foreach(var s in f.Segments) {}
 }

最终简单的效果先这样吧a94c36f1c62618ec12bf32e283996a67.png;以后有时间的话,可以再去摸索一下更复杂的效果748dc086523717710b25face3e96baf3.png;编程不息、Bug不止、无Bug、无生活787ef2c013bbc8b410e29721497e2d51.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值