zoukankan      html  css  js  c++  java
  • 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文件中自定义函数,并用在表达式里。

    比如定义:

    function balls(x,y)
        
    for n = 02*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}}

    通过灵活地组合应用这些技巧,就可以画各种想要的图形。

  • 相关阅读:
    Editplus中添加System.out.println()快捷键
    API使用
    项目有两个红点
    no console to display at this time
    startup.bat闪退问题
    filter的dispatcher节点
    【DP专题】——洛谷P2467地精部落
    输入年月日,计算这是该年中第几天
    输出N以内的完整数
    python中关于EOF的tips
  • 原文地址:https://www.cnblogs.com/rufi/p/GraphPlotTips.html
Copyright © 2011-2022 走看看