惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
H
Help Net Security
V
Visual Studio Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
The Cloudflare Blog
Martin Fowler
Martin Fowler
D
Docker
腾讯CDC
F
Fortinet All Blogs
雷峰网
雷峰网
GbyAI
GbyAI
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - 叶小钗

博客园 - AnyCAD

ACIS SAT 文件格式详解及其解析 基于.NET开发STEP三维模型浏览器 【源码】蚁群算法TSP问题可视化 Python下的三维建模和可视化 .NET8:快速集成Rapid.NET三维控件 AnyCAD程序无法启动的问题解决方法 基于AvaloniaUI开发跨平台.NET三维应用:环境搭建 基于.NET三维控件的个性化管道软件开发 .NET6: 开发基于WPF的摩登三维工业软件 (10) - 机器人 .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM .NET6: 开发基于WPF的摩登三维工业软件 (7) .NET6: 开发基于WPF的摩登三维工业软件 (2) .NET6: 开发基于WPF的摩登三维工业软件 .NET6: 三分钟搭建WPF三维应用 十行代码搭建基于.NET6三维应用程序 基于.NET的机械运动模拟应用开发 Linux下基于.NET5开发CAX应用 .NET5下的三维应用程序开发 本地Nuget包管理
基于.NET实现Matlab备用方案
AnyCAD · 2020-06-13 · via 博客园 - AnyCAD

基于.NET实现Matlab备用方案

今日圈内的朋友都在刷这样的消息:

正值哈工大百年校庆之际,哈工大、哈工程的师生收到了MATLAB软件停止服务的邮件,在与 MATLAB 开发公司 MathWorks 交涉之后,才得知因为美国政府实体名单的原因,相关授权已被中止。美国商务部宣布,将共计33家中国公司及机构等列入出口限制实体清单,其中就包括哈工大和哈工程两所院校。这次发布的清单从硬件扩展到软件层面,以后哈工大师生写论文不能再使用MATLAB处理数据了。 MATLAB是美国MathWorks在1984年推出的商用数学软件,目前世界上 180 多个国家的超过三百万工程师和科学家在使用 MATLAB 和 Simulink。经过十几年的发展,MATLAB已经超越了普通数学软件,成为理工科专业必不可少的工具。MATLAB用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。通俗点说只要是数学方面的问题都可以用它来做,所以它的应用领域非常广泛。

借助AnyCAD Rapid .NET SDK仅用2分钟,我们就可以完成一个简单的MyMatlab应用,可以实现曲面的模拟功能。具体过程如下:

1 准备工作

安装程序环境:

注意:如果没有安装VS2019,则需要安装一下最新的VC++的运行时库,下载链接如下:

1.1 创建一个控制台应用

1.2 使用nuget添加组件

使用nuget安装可以自动添加.Net程序集引用

2 开始写代码

以可视化曲面:f(x,y) = sin(x) * cos(y)


namespace MyMatlab
{
    class Program
    {
        static void Main(string[] args)
        {
            var matplot = Matplot.Create("MyMatlab 2020");

            var xRange = new PlotRange(0, 3.14f * 2, 0.1f);
            var yRange = new PlotRange(0, 3.14f * 2, 0.1f);
            matplot.AddSurface(xRange, yRange, (u, v) =>
            {
                double x = u;
                double y = v;
                double z = Math.Sin(u) * Math.Cos(v);

                return new GPnt(x, y, z);
            });

            matplot.Show(800, 600);
        }
    }
}

2.3 编译运行

完整项目工程: https://gitee.com/anycad/MyMatplot

2.4 测试一下

函数:f(x,y) = sin(x) + cos(y)

3 小结

诚然,实现一个像MATLAB功能一样丰富的软件并非一朝一夕可完成,但千里之行始于足下,不积小步无以至千里,秉持水滴石穿,只要功夫深铁棒磨成针的精神,实现一个功能强大的数学软件也并非不可能。

补充,最近老邹读到一段话感触很深:

备胎危机”就像一道闪电,划破了黑暗的长空,那些隐藏的卡脖子技术在短暂的光亮之中露出了狰狞的牙齿。备胎危机意识,空前地普及了人们对于“工业暗器”的认识:它不动声色地潜伏在工业领域,体量很小,但却为工业创造了巨额财富。你离不开它,你看不到它。它是最不起眼、最中性的强大工具,然而,在极端的时候它或许会成为致命的政治武器。