三亩地.
  • 首页
  • 学习日记
  • 项目实战
  • 学习方法
  • 代码技巧
  • 避坑指南
  • 调试经验
  • 实战教程
  • 编程思维
  • 资讯中心
  • 关于我们

资讯详情

深入了解每一个知识点

  • 首页
  • /
  • 资讯中心
  • /
  • 文章详情

CsGrafeq: 比 Desmos 更“能折腾”的几何函数画板(.NET + Avalonia)

📅 2026/7/5 3:13:22 👁️ 阅读次数 📝 编程学习
CsGrafeq: 比 Desmos 更“能折腾”的几何函数画板(.NET + Avalonia)

CsGrafeq: 比 Desmos 更“能折腾”的几何函数画板(.NET + Avalonia)

CsGrafeq: 比 Desmos 更“能折腾”的几何函数画板(.NET + Avalonia)

一个由高中生独立开发的跨平台几何绘图与隐函数作图软件
GitHub:https://github.com/jyswjjgdwtdtj/CsGrafeq

当然不敢说“全面碾压”,但在几何构造 + 隐函数绘图这条路线上,它确实更自由、更好玩,也更适合用来“探索”。



1. 项目一句话介绍

CsGrafeq 是一个面向学习与探索的几何草图工具:
你可以像在几何画板上一样进行点、线、圆等对象的构造与拖拽,也可以以高质量地绘制 隐函数图像(例如 图1 exp(sin(x)+cos(y))=sin(exp(x+y))),用于数学学习、作图验证与直观理解。

关键词:跨平台 / 几何构造 / 隐函数绘图 / .NET / Avalonia


2. 我为什么要做这个(动机)

作为一个“货真价实”的学生,曾经也至少刷过百道平面几何大题,在学解析几何、圆锥曲线、函数图像时,经常遇到这些痛点:

  1. 图像不够直观:课堂常用的静态图难以感受参数变化带来的影响
  2. 工具门槛或平台限制:很多工具要么很老旧、要么只能在特定平台运行
  3. 想“动手做”但缺少合适的软件:既想画几何构造,又想把方程的图像画出来(尤其是隐函数)
  4. 功能落后:很多软件只能绘制一元函数,对断点、复杂结构等情况不够友好

所以我想做一个工具:

  • 开箱即用 适合学习
  • 跨平台(Windows / Linux / macOS 皆可)
  • 把几何构造与函数图像结合,让数学“可拖拽、可观察、可验证”

同时,这也是我学习软件工程与图形编程的一次完整实践:从需求、设计、实现、调试、优化到开源维护,尽量做成一个“像样的”项目。



3. CsGrafeq 能做什么(核心功能/使用场景)

下面是我希望 CsGrafeq 覆盖的主要场景(也欢迎大家提需求):

3.1 几何草图与构造

  • 点、线段、直线、圆等几何对象的创建与编辑
  • 拖拽点观察几何关系变化
  • 适合做:三角形性质验证、辅助线探索、作业验算、思路演示等

3.2 隐函数绘图(Implicit Function Plotting)

可以绘制类似下面这种形式的曲线/图形:

  • f(x, y) = 0
  • 例如:x^2 + y^2 - 1 = 0(单位圆)
  • 或更复杂的曲线,用于观察形状、交点、连通性等

很多“好看的曲线”无法写成形如 f(x)=...或y=...,而是f(x,y)=0,或作为三维曲面的二维切片



tan(sin(x)+cos(y))=sin(tan(x+y))


4. 项目优势(我在意的点)

4.1 跨平台:一次开发,多端运行

本项目基于 .NET + Avalonia,目标是让它能在多个系统上运行,而不是把工具限制在单一平台。(虽然暂时因为没有解决也没有精力解决将表达式树编译为wasm的jit和安卓端java可执行的函数)

Avalonia 是一个跨平台 UI 框架,它让我可以用 C# 编写界面,并兼顾 Windows/Linux/macOS。

![platforms](https://img2024.cnblogs.com/blog/3653212/202605/3653212-20260509220401474-1019128907.jpg" width="50%">
(至少有计划不是吗【手动狗头】)

4.2 交互优先:为了“学习”和“探索”

我做这个工具不是为了堆一堆菜单功能,而是想做到:

  • 操作直观
  • 拖拽反馈及时
  • 让使用者能“玩”出数学直觉

4.3 开源:欢迎围观、提建议、一起改

项目已开源在 GitHub,欢迎:

  • 提 Issue:反馈 bug / 提需求
  • 点 Star:给我一点继续优化的动力
  • 提 PR:如果你也想参与实现某个功能(我也很想学习协作流程)

GitHub:https://github.com/jyswjjgdwtdtj/CsGrafeq


5. 作为高中生做这个项目,我想表达什么

很多人觉得“学生写软件”离自己很远,但这个项目从初中开始构思,经过数年从基础脚本,到更高级的语言,与一年多的功能开发、界面打磨、修 bug、做优化,我也从“会写点脚本”成长为更成熟的开发者。

在做这个项目的过程中,最大的收获是:

  • 学会把一个想法拆成可执行的任务
  • 学会调试与迭代:不是一次写完,而是不断改进
  • 学会写“能被别人使用”的东西,而不只是跑通 demo
  • 更重要的是:我发现只要愿意投入时间,做出一个真实可用的工具并不是遥不可及的事

如果你也是学生(或者正在自学编程/数学),希望这个项目能给你一点点启发:
不要只停留在“我想做”,把它做出来,你就赢了一大半。

代码量:
codeline


6. 下载与使用

  • 源码地址:CsGrafeq
  • 运行环境:.NET 1O
  • Release下载:Release

7. 未来计划(Roadmap)

我接下来想继续完善的方向包括(先列一些你愿意做/正在做的):

  1. 更多几何约束/构造工具(平行、垂直、中点、角平分线等)
  2. 提升性能(如使用GPU渲染,尽管目前发现似乎不如CPU快)
  3. 导出图片/导出文件(目前存在一些问题)
  4. 更友好的参数与表达式输入体验(比如“原生数学公式”的渲染式输入 但这几乎是一个全新的高难度项目;我在某个老版本做过一个体验不太好的尝试)

8. 最后:如果你觉得有意思

  • 欢迎点个 Star:https://github.com/jyswjjgdwtdtj/CsGrafeq
  • 欢迎提 Issue:告诉我哪里不好用、哪里可以改
  • 如果你是同学/老师,也欢迎拿去课堂演示或学习使用(我会很开心)

当初中生在手搓发动机,jumping在主=6时,的的确确有中学生能用课余时间做出一个正儿八经的项目!

谢谢你看到这里!

编程学习 技术分享 实战经验

相关新闻

昇腾CANN/ge常量折叠特性分析

2026/7/3 4:30:52

MATLAB抽水蓄能电站系统的最优竞价策略研究附Matlab代码

2026/7/5 5:25:35

OpenClaw:本地优先的自主AI代理框架部署与实战指南

2026/7/4 19:50:56

最新新闻

Android本地唤醒+云端识别双通路语音助手源码,支持自定义热词与多轮指令响应

2026/7/5 10:06:39

Gemini 3.1 Pro编程能力实测:低成本高质代码生成新标杆

2026/7/5 10:06:39

Claude Sonnet 4.6编程能力实测:Opus级质量与1/5成本的工程落地

2026/7/5 10:06:39

Playwright沙箱模式实战:构建高隔离度的浏览器自动化测试环境

2026/7/5 10:06:39

本地运行的ESP8266双控智能家居套件:灯光调光+锅炉温控+人体感应联动

2026/7/5 10:06:39

pytest-dependency依赖管理实战:解决作用域、并行执行与动态依赖难题

2026/7/5 10:06:39

日新闻

基于YOLOv12的番茄成熟度智能检测系统开发

2026/7/5 0:01:15

Claude API国内使用合规指南与国产替代方案

2026/7/5 0:01:15

终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼

2026/7/5 0:01:15

周新闻

基于YOLOv12的番茄成熟度智能检测系统开发

2026/7/5 0:01:15

Claude API国内使用合规指南与国产替代方案

2026/7/5 0:01:15

终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼

2026/7/5 0:01:15

月新闻

[C++]内存管理:串顺序存储的内存回收

2026/7/4 8:14:52

足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建

2026/7/3 18:00:20

抖音内容监控助手:告别手动刷新,让优质内容主动找你

2026/7/4 8:14:44

分类目录

  • 学习日记
  • 项目实战
  • 学习方法
  • 代码技巧
  • 避坑指南
  • 调试经验

热门标签

JavaScript Python Java 前端开发 后端开发 算法 数据结构 项目实战

关于三亩地

三亩地是一个专注于编程学习的平台,以真实学习日记为载体,分享编程学习经验、项目实操技巧和高效学习方法。

快速链接

学习日记

项目实战

学习方法

资讯中心

联系方式

邮箱:contact@mfbz.cn

微信:sanmudi_code

QQ 群:123456789

© 2026 三亩地 编程学习日记 版权所有 | mfbz.cn