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的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

skynet源码阅读5--协程调度模型

注:为方便理解,本文贴出的代码部分经过了缩减或展开,与实际skynet代码可能会有所出入。 作为一个skynet actor,在启动脚本被加载的过程中,总是要调用skynet.start和skynet.dispatch的,前者在skynet-os中…

ASP.NET Core GRPC 和 Dubbo 互通

一.前言Dubbo 是比较流行的服务治理框架,国内不少大厂都在使用。以前的 Dubbo 使用的是私有协议,采集用的 hessian 序列化,对于多语言生态来说是极度的不友好。现在 Dubbo 发布了新版本 v3,推出了基于 gRPC 的新协议 Triple&#…

详解C# 迭代器

[引用:https://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html] 迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式。简单来说,迭代器模…

利用redis List队列简单实现秒杀 PHP代码实现

一 生产者producer部分 --------------------------------producer 部分注释------------------------------------------------------------ 用户在页面请求之后, 获取到用户uid , 跳转到这个加入队列的方法 (这里直接在producer中模拟了多个uid) 在方法内部判断redis队列长…

使用Filezilla 与 linux远程服务器传输文件时,设置默认打开编辑器

1. 点击编辑 2. 选择设置,点击文本编辑 3. 设置编辑器目录 4. 确定作用: 这样设置之后,可以实现在远程站点栏直接下载并使用phpstorm编辑的作用 正常需要下载之后,再去本地相应下载目录打开,然后再进行上传文件&#x…

在 .NET 中使用 FluentValidation 进行参数验证

不用说,参数验证很重要,无效的参数,可能会导致程序的异常。如果使用Web API或MVC页面,那么可能习惯了自带的规则验证,我们的控制器很干净:public class User {[Required]public string FirstName { get; se…

在win10系统下怎样快速切换任务视图

2019独角兽企业重金招聘Python工程师标准>>> 切换窗口:Alt Tab 任务视图:Win Tab (松开键盘界面不会消失) 切换任务视图:Win Ctrl 左/右 创建新的虚拟桌面:Win Ctrl D 关闭当前虚拟桌面:Win Ctrl F4…

Linux上搭建Samba,实现windows与Linux文件数据同步

一 环境介绍 1. 本地win10 2. Linux (centos7.4) 注:因为运营商方面禁止smb协议,导致无法在云服务器上使用smb,如果不是在虚拟机上操作,而是在云服务器上操作,建议还是使用 filezillaxshell组合 或者 使用finalshell等…

A5-1和DES两个加密算法的学习

A5-1加密算法 1、基本原理 A5-1加密算法是一种流password,通过密钥流对明文进行加密。然后用密钥流进行对密文的解密操作。 这样的算法主要用于GSM加密。也就是我们平时打电话的时候。通信数据发送到基站,基站发送到还有一个基站,基站发送到接…

从0到1简易区块链开发手册V0.3-数据持久化与创世区块

Author: brucefeng Email: brucefengbrucefeng.com 编程语言:Golang 1.BoltDB简介 Bolt是一个纯粹Key/Value模型的程序。该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速,可靠的数据库。 Bolt…

ELK之elasticsearch5.6的安装和head插件的安装

这里选择的elasticsearch为5.6的新版本,根据官方文档有几种暗装方式: https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html 这里选择rpm包安装https://www.elastic.co/guide/en/elasticsearch/reference/curre…

Nginx 基础(一)

一 、Nginx简述 Nginx是一个开源、高性能、可靠的HTTP中间件、代理服务。二 、常见的HTTP服务 1. HTTPD-Apache基金会 2. IIS-微软 3. GWS-Google 4. Nginx三、为什么选择Nginx 原因一:IO多路复用epoll (主要解决了并发性的问题) 注1&#xf…

ASP.NET Core高性能服务器HTTP.SYS

如果我们只需要将ASP.NET CORE应用部署到Windows环境下,并且希望获得更好的性能,那么我们选择的服务器类型应该是HTTP.SYS。Windows环境下任何针对HTTP的网络监听器/服务器在性能上都无法与HTTP.SYS比肩。[本文节选《ASP.NET Core 6框架揭秘》第18章]一、…

Nginx 基础 ( 二)

一、HTTP请求 http请求包括客户端请求服务端 以及 服务端响应数据回客户端,如下 请求:包括请求行、请求头部、请求数据 响应:包括状态行、消息报头、响应正文 比如在Linux中curl请求网站获取请求信息和响应信息 curl -v http://www.kugou.com…

《金融行业应用解决方案白皮书》发布,金融自主创新未来可期!

日前,以“聚势赋能 行业共创”为主题的金融行业解决方案发布会在线上举行。麒麟软件发布《金融行业应用解决方案白皮书》,并发起成立“金融机具生态圈俱乐部”,助力金融行业用户高质量发展。金融信息系统曾经被国外厂商垄断金融信息系统作为国…

leetcode53 Maximum Subarray 最大连续子数组

题目要求 Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum 6.即:寻找数列中的一个子…

详解go语言的array和slice 【二】

上一篇 详解go语言的array和slice 【一】已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多。上一篇的最后讲解到创建新的slice时使用第三个索引来限制slice的容量,在操作新slice时…

详解Objective-C的meta-class

2019独角兽企业重金招聘Python工程师标准>>> 比较简单的一篇英文,重点是讲解meta-class。翻译下,加深理解。 原文标题:What is a meta-class in Objective-C? 原文地址:http://www.cocoawithlove.com/2010/01/what-is…

十倍程序员 | 使用 Source Generator 将 JSON 转换成 C# 类

前言有时候,我们需要将通过 WebAPI 接收 JSON 字符串转换成 C# 代码。Visual Studio 提供了一个功能菜单可以轻松实现:执行完成后,它会将生成的代码放在打开的的代码窗口中。但是,如果有多个 JSON 字符串需要转换,这个…

微软Microsoft Azure 机器学习工作室的案例之Image Classification using DenseNet

点击上方蓝字关注我们(本文阅读时间:10分钟)Microsoft Azure Machine Learning Studio是微软强大的机器学习平台,在设计器中,微软内置了15个场景案例,但网上似乎没有对这15个案例深度刨析的分析资料,所以我…