GraphPlot的几个使用技巧
上次介绍了用Lua做的个绘制二元等式或不等式的图像的软件,今天增加了输出图片的功能,下载地址还是原来的。下面介绍几个使用技巧,这也正是这个软件的有趣之处。
1. 求余和周期函数
利用求余可以将一个图形变为一系列的图形,举几个例子:
对直线的截距求余,y=x+d → (y-x)%d=0,例如:(y-x)%20 == 0
对直线的倾角求余,y=tgθx → atan(y/x)%θ=0,例如:abs(atan(y/x)%0.2)<0.005
对圆的半径求余,sqrt(x^2+y^2)=r → sqrt(x^2+y^2)%r=0, 例如:abs(sqrt(x^2+y^2)%10)<0.1
求余是一个周期函数,使用其他的周期函数也可以做,比如:abs(cos((x-y)/3)-1)<0.001
2. 平移和缩放
把f(x,y)=0水平方向平移a,竖直方向平移b后的方程是f(x-a,y-b)=0,缩放则是乘一个因子f(u*x, v*y)=0。
比如:(x/2-25)^2+(y-50)^2<200
3. 求绝对值,变换正负号,交换x和y
通过求绝对值,变换正负号,可以改变图形的对称性;交换x和y使图形旋转90度。
比如:abs(y+x^2)<0.1 or abs(x+y^2)<0.1
4. 不等式
使用不等号可以画面积,等式对精度要求比较高,画不等式则容易一些。
比如圆和圆环:(x+50)^2+y^2<900 or abs((x-50)^2+y^2-900)<100
通常用画很细的圆环作为画圆圈的近似。
5. 交集、并集、补集
用and求交集,or求并集,not求补集。
例如:((x+40)^2+y^2<900 or x^2+y^2<900) and not((x+40)^2+y^2<900 and x^2+y^2<900)
6. 自定义函数
可以在Favorites.lua文件中自定义函数,并用在表达式里。
比如定义:
for n = 0, 2*pi, pi/4 do
if (x-60*cos(n))^2+(y-60*sin(n))^2<100 then return true end
end
return false
end
绘制表达式:balls(x,y)
模拟极坐标,画心形:
function heart(x, y)
for t = 0, 2*pi, pi/40 do
if abs(x-16*sin(t)^3)<0.1 and abs(y-13*cos(t)+5*cos(2*t)+2*cos(3*t)+cos(4*t))<0.1 then
return true
end
end
return false
end
Favorite目录中加入{leafname = "heart", tip = "heart(x, y)", config = {Xmin=-20, Xmax=20, Ymin=-20,Ymax=20,Split=4}}
通过灵活地组合应用这些技巧,就可以画各种想要的图形。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述