不敢说“全面碾压”但在几何构造 隐函数绘图这条路线上它确实更自由、更好玩也更适合用来“探索”。1. 项目一句话介绍CsGrafeq是一个面向学习与探索的几何草图工具你可以像在几何画板上一样进行点、线、圆等对象的构造与拖拽也可以以高质量地绘制隐函数图像例如 图1exp(sin(x)cos(y))sin(exp(xy))用于数学学习、作图验证与直观理解。关键词跨平台 / 几何构造 / 隐函数绘图 / .NET / Avalonia2. 我为什么要做这个动机作为一个“货真价实”的学生曾经也至少刷过百道平面几何大题在学解析几何、圆锥曲线、函数图像时经常遇到这些痛点图像不够直观课堂常用的静态图难以感受参数变化带来的影响工具门槛或平台限制很多工具要么很老旧、要么只能在特定平台运行想“动手做”但缺少合适的软件既想画几何构造又想把方程的图像画出来尤其是隐函数功能落后很多软件只能绘制一元函数对断点、复杂结构等情况不够友好所以我想做一个工具开箱即用适合学习跨平台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(xy))4. 项目优势我在意的点4.1 跨平台一次开发多端运行本项目基于.NET Avalonia目标是让它能在多个系统上运行而不是把工具限制在单一平台。(虽然暂时因为没有解决也没有精力解决将表达式树编译为wasm的jit和安卓端java可执行的函数)Avalonia 是一个跨平台 UI 框架它让我可以用 C# 编写界面并兼顾 Windows/Linux/macOS。4.2 交互优先为了“学习”和“探索”我做这个工具不是为了堆一堆菜单功能而是想做到操作直观拖拽反馈及时让使用者能“玩”出数学直觉4.3 开源欢迎围观、提建议、一起改项目已开源在 GitHub欢迎提 Issue反馈 bug / 提需求点 Star给我一点继续优化的动力提 PR如果你也想参与实现某个功能我也很想学习协作流程GitHubhttps://github.com/jyswjjgdwtdtj/CsGrafeq5. 作为高中生做这个项目我想表达什么很多人觉得“学生写软件”离自己很远但这个项目从初中开始构思经过数年从基础脚本到更高级的语言与一年多的功能开发、界面打磨、修 bug、做优化我也从“会写点脚本”成长为更成熟的开发者。在做这个项目的过程中最大的收获是学会把一个想法拆成可执行的任务学会调试与迭代不是一次写完而是不断改进学会写“能被别人使用”的东西而不只是跑通 demo更重要的是我发现只要愿意投入时间做出一个真实可用的工具并不是遥不可及的事如果你也是学生或者正在自学编程/数学希望这个项目能给你一点点启发不要只停留在“我想做”把它做出来你就赢了一大半。代码量6. 下载与使用源码地址CsGrafeq运行环境.NET 1ORelease下载Release7. 未来计划Roadmap我接下来想继续完善的方向包括先列一些你愿意做/正在做的更多几何约束/构造工具平行、垂直、中点、角平分线等提升性能如使用GPU渲染尽管目前发现似乎不如CPU快导出图片/导出文件目前存在一些问题
CSGRAFEQ: 比 DESMOS 更“能折腾”的几何函数画板(.NET + AVALONIA)
不敢说“全面碾压”但在几何构造 隐函数绘图这条路线上它确实更自由、更好玩也更适合用来“探索”。1. 项目一句话介绍CsGrafeq是一个面向学习与探索的几何草图工具你可以像在几何画板上一样进行点、线、圆等对象的构造与拖拽也可以以高质量地绘制隐函数图像例如 图1exp(sin(x)cos(y))sin(exp(xy))用于数学学习、作图验证与直观理解。关键词跨平台 / 几何构造 / 隐函数绘图 / .NET / Avalonia2. 我为什么要做这个动机作为一个“货真价实”的学生曾经也至少刷过百道平面几何大题在学解析几何、圆锥曲线、函数图像时经常遇到这些痛点图像不够直观课堂常用的静态图难以感受参数变化带来的影响工具门槛或平台限制很多工具要么很老旧、要么只能在特定平台运行想“动手做”但缺少合适的软件既想画几何构造又想把方程的图像画出来尤其是隐函数功能落后很多软件只能绘制一元函数对断点、复杂结构等情况不够友好所以我想做一个工具开箱即用适合学习跨平台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(xy))4. 项目优势我在意的点4.1 跨平台一次开发多端运行本项目基于.NET Avalonia目标是让它能在多个系统上运行而不是把工具限制在单一平台。(虽然暂时因为没有解决也没有精力解决将表达式树编译为wasm的jit和安卓端java可执行的函数)Avalonia 是一个跨平台 UI 框架它让我可以用 C# 编写界面并兼顾 Windows/Linux/macOS。4.2 交互优先为了“学习”和“探索”我做这个工具不是为了堆一堆菜单功能而是想做到操作直观拖拽反馈及时让使用者能“玩”出数学直觉4.3 开源欢迎围观、提建议、一起改项目已开源在 GitHub欢迎提 Issue反馈 bug / 提需求点 Star给我一点继续优化的动力提 PR如果你也想参与实现某个功能我也很想学习协作流程GitHubhttps://github.com/jyswjjgdwtdtj/CsGrafeq5. 作为高中生做这个项目我想表达什么很多人觉得“学生写软件”离自己很远但这个项目从初中开始构思经过数年从基础脚本到更高级的语言与一年多的功能开发、界面打磨、修 bug、做优化我也从“会写点脚本”成长为更成熟的开发者。在做这个项目的过程中最大的收获是学会把一个想法拆成可执行的任务学会调试与迭代不是一次写完而是不断改进学会写“能被别人使用”的东西而不只是跑通 demo更重要的是我发现只要愿意投入时间做出一个真实可用的工具并不是遥不可及的事如果你也是学生或者正在自学编程/数学希望这个项目能给你一点点启发不要只停留在“我想做”把它做出来你就赢了一大半。代码量6. 下载与使用源码地址CsGrafeq运行环境.NET 1ORelease下载Release7. 未来计划Roadmap我接下来想继续完善的方向包括先列一些你愿意做/正在做的更多几何约束/构造工具平行、垂直、中点、角平分线等提升性能如使用GPU渲染尽管目前发现似乎不如CPU快导出图片/导出文件目前存在一些问题