某冰岚吧 关注:97贴子:3,358

回复:酷语言

取消只看楼主收藏回复


TO 头 :x :y :r :z臂 :z臂r :y臂 :y臂r :z腕 :z腕r :y腕 :y腕r :z腿 :z腿r :y腿 :y腿r :zx腿 :zx腿r :yx腿 :yx腿r
make :penx=:penx+:x :peny=:peny+:y :heading=:heading+:r
OVAL 10 10 0
OVAL 6 6 0
OVAL 2 2 0
rt 180
fd 80
make :r=:heading :x=:penx :y=:peny :penc=1
左臂 :z臂 :z臂r :z腕 :z腕r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
右臂 :y臂 :y臂r :y腕 :y腕r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
左大腿 :z腿 :z腿r :zx腿 :zx腿r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
右大腿 :y腿 :y腿r :yx腿 :yx腿r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
bk 80
rt 180
TO 左臂 :z臂 :z臂r :z腕 :z腕r
bk 65
rt :z臂+:z臂r
fd 40
左腕 :z腕 :z腕r
TO 右臂 :y臂 :y臂r :y腕 :y腕r
bk 65
rt :y臂+:y臂r
fd 40
右腕 :y腕 :y腕r
TO 左腕 :z腕 :z腕r
make :penc=:penc+1
rt :z腕+:z腕r
fd 30
TO 右腕 :y腕 :y腕r
make :penc=:penc+1
rt :y腕+:y腕r
fd 30
TO 左大腿 :z腿 :z腿r :zx腿 :zx腿r
rt :z腿+:z腿r
fd 50
左小腿 :zx腿 :zx腿r
TO 右大腿 :y腿 :y腿r :yx腿 :yx腿r
rt :y腿+:y腿r
fd 50
右小腿 :yx腿 :yx腿r
TO 左小腿 :zx腿 :zx腿r
make :penc=:penc+2
rt :zx腿+:zx腿r
fd 50
TO 右小腿 :yx腿 :yx腿r
make :penc=:penc+2
rt :yx腿+:yx腿r
fd 50
to 动 :x :y :r :z臂r :y臂r :z腕r :y腕r :z腿r :y腿r :zx腿r :yx腿r
头 :pen0 :pen1 :r :pen2 :z臂r :pen3 :y臂r :pen4 :z腕r :pen5 :y腕r :pen6 :z腿r :pen7 :y腿r :pen8 :zx腿r :pen9 :yx腿r
make :pen0=:pen0+:x :pen1=:pen1+:y :pen2=:pen2+:z臂r :pen3=:pen3+:y臂r :pen4=:pen4+:z腕r
make :pen5=:pen5+:y腕r :pen6=:pen6+:z腿r :pen7=:pen7+:y腿r :pen8=:pen8+:zx腿r :pen9=:pen9+:yx腿r
TO MAIN
//text 32 0 15 宋体 同志们好!
make :pen0=0 :pen1=0 :pen2=0 :pen3=0 :pen4=0 :pen5=0 :pen6=0 :pen7=0 :pen8=0 :pen9=0 :PENw=4 :PENA=230
MEMUSE
WHILE
动 1 0 1 10 -10 -5 5 0 -10 0 10
MEMSEE
WAIT 100
动 0 0 0 10 -10 -5 5 -10 0 10 0
MEMSEE
WAIT 100
动 0 0 0 10 -10 -5 5 0 10 0 -10
MEMSEE
//text 32 0 15 宋体  同志们辛苦了!
WAIT 100
动 -1 0 0 10 -10 -5 5 10 0 -10 0
MEMSEE
text 32 0 15 宋体  同志们好!
WAIT 100
IF :penx>500
make :penx=-500
]
IF :heading>30
make :heading=25
]
]


24楼2017-02-16 00:53
回复
    TO 坐标轴 :a :x :y :x数 :y数 :kx :ky :p
    //:a缩放比例:x :y标注线密度:x数 :y数数字标注的密度 :k网格线的密度
    //:p PI相关(p取值 0为无PI 1为x轴PI相关 2为y轴PI相关 3为全部PI相关)
    hm
    make :penx=-1500 :penw=2
    setxy 1500 0
    make :penx=0 :peny=-750
    setxy 0 750
    hm
    for ::I :a*:x 1500
    make :penx=::I
    fd 6
    bk 6
    ]:a*:x
    for ::I :a*:x*(-1) -1500
    make :penx=::I
    fd 6
    bk 6
    ]:a*:x*(-1)
    hm
    rt 90
    for ::I :a*:y 750
    make :peny=::I
    fd 6
    bk 6
    ]:a*:y
    for ::I :a*:y*(-1) -750
    make :peny=::I
    fd 6
    bk 6
    ]:a*:y*(-1)
    hm
    make :peny=-7
    //↓▼↓▼↓▼↓▼↓▼↓▼↓PI相关有所不同▼↓▼↓▼↓▼↓▼↓▼↓▼
    for ::I :a*:x数 1500
    make :penx=::I-5
    IF OR :p=1 :p=3
    text 14 0 15 宋体 {(round(1000*(::I/:a)/PI))/1000}π
    ]
    elif 1=1
    text 14 0 15 宋体 {::I/:a}
    ]
    ]:a*:x数
    for ::I :a*:x数*(-1) -1500
    make :penx=::I-6
    IF OR :p=1 :p=3
    text 14 0 15 宋体 {(round(1000*(::I/:a)/PI))/1000}π
    ]
    elif 1=1
    text 14 0 15 宋体 {::I/:a}
    ]
    ]:a*:x数*(-1)
    make :penx=6
    for ::I :a*:y数 750
    make :peny=::I+8
    IF OR :p=2 :p=3
    text 14 0 15 宋体 {(round(1000*(::I/:a)/PI))/1000}π
    ]
    elif 1=1
    text 14 0 15 宋体 {::I/:a}
    ]
    ]:a*:y数
    for ::I :a*:y数*(-1) -750
    make :peny=::I+8
    IF OR :p=2 :p=3
    text 14 0 15 宋体 {(round(1000*(::I/:a)/PI))/1000}π
    ]
    elif 1=1
    text 14 0 15 宋体 {::I/:a}
    ]
    ]:a*:y数*(-1)
    //↑▲↑▲↑▲↑▲↑▲↑▲PI相关有所不同↑▲↑▲↑▲↑▲↑▲↑▲↑▲↑▲
    hm
    make :peny=-7
    text 14 0 15 宋体 O
    make :penw=1 :pena=200
    hm
    make :peny=-750
    for ::I :a*:kx 1500
    make :penx=::I
    setxy :penx 750
    make :peny=-750
    ]:a*:kx
    for ::I :a*:kx*(-1) -1500
    make :penx=::I
    setxy :penx 750
    make :peny=-750
    ]:a*:kx*(-1)
    make :penx=-1500
    for ::I :a*:ky 750
    make :peny=::I
    setxy 1500 :peny
    make :penx=-1500
    ]:a*:ky
    for ::I :a*:ky*(-1) -750
    make :peny=::I
    setxy 1500 :peny
    make :penx=-1500
    ]:a*:ky*(-1)
    make :pena=255
    hm
    TO 正弦图像 :x :y :z :k :a :b :j
    //:x :y :z 置坐标旋转:k值域 :a缩放,:j精度(步长越小越精确):b为y轴方向的放大倍数
    make :penx=((-1)*:b*(sin(((-1)*:k)))*(sin(deg(:z)))-:k*(cos(deg(:z)))+:x)*:a
    make :peny=(:b*(sin(((-1)*:k)))*(cos(deg(:z)))-:k*(sin(deg(:z)))+:y)*:a
    FOR ::j ((-1)*:k) :k
    setxy ((-1)*:b*(sin(::j))*(sin(deg(:z)))+::j*(cos(deg(:z)))+:x)*:a (:b*(sin(::j))*(cos(deg(:z)))+::j*(sin(deg(:z)))+:y)*:a
    ]:j
    TO 余弦图像 :x :y :z :k :a :b :j
    //:x :y :z 置坐标旋转:k值域 :a缩放,:j精度(步长越小越精确):b为y轴方向的放大倍数
    make :penx=((-1)*:b*(cos(((-1)*:k)))*(sin(deg(:z)))-:k*(cos(deg(:z)))+:x)*:a
    make :peny=(:b*(cos(((-1)*:k)))*(cos(deg(:z)))-:k*(sin(deg(:z)))+:y)*:a
    FOR ::j ((-1)*:k) :k
    setxy ((-1)*:b*(cos(::j))*(sin(deg(:z)))+::j*(cos(deg(:z)))+:x)*:a (:b*(cos(::j))*(cos(deg(:z)))+::j*(sin(deg(:z)))+:y)*:a
    ]:j
    TO 正切图像 :x :y :z :k :a :b :j
    //:x :y :z 置坐标旋转:k值域 :a缩放,:j精度(步长越小越精确):b为y轴方向的放大倍数
    if tan(:k)>:a*500
    make :k=:k-:j
    ]
    make :penx=((-1)*:b*(tan(((-1)*:k)))*(sin(deg(:z)))-:k*(cos(deg(:z)))+:x)*:a
    make :peny=(:b*(tan(((-1)*:k)))*(cos(deg(:z)))-:k*(sin(deg(:z)))+:y)*:a
    FOR ::j ((-1)*:k) :k
    if tan(::j)>tan(::j+:j)
    make :PENx=((-1)*:b*(tan(::j+:j))*(sin(deg(:z)))+::j*(cos(deg(:z)))+:x)*:a :PENy=(:b*(tan(::j+:j))*(cos(deg(:z)))+::j*(sin(deg(:z)))+:y)*:a
    ]
    if tan(::j)<tan(::j+:j)
    setxy ((-1)*:b*(tan(::j))*(sin(deg(:z)))+::j*(cos(deg(:z)))+:x)*:a (:b*(tan(::j))*(cos(deg(:z)))+::j*(sin(deg(:z)))+:y)*:a
    ]
    ]:j
    //fplot /zoom 30 30 /plot x sin(x) /plot x 1/sin(x+pi/6) /plot x sin(x+2*pi/6)
    TO MAIN
    //text 32 0 15 宋体 同志们好!
    正切图像 0 0 0 10 80 1 0.01
    正弦图像 0 0 0 10 80 1 0.01
    余弦图像 0 0 0 10 80 1 0.01
    //make x_x (X-0x)*cz-(Y-Oy)*sz+Ox
    //make y_y (X-0x)*sz+(Y-Oy)*cz+Oy
    坐标轴 80 0.5*PI 1 0.5*PI 1 0.5*PI 1 1


    25楼2017-02-17 00:15
    收起回复

      to 极坐标转参数坐标放大置坐标旋转 :a :x :y :z :xx :yy
      setxy :a*(:yy*(sin(:xx))*(cos(deg(:z)))-:yy*(cos(:xx))*(sin(deg(:z))))+:x :a*(:yy*(sin(:xx))*(sin(deg(:z)))+:yy*(cos(:xx))*(cos(deg(:z))))+:y
      TO 极坐标转参数初始放大置坐标旋转 :a :x :y :z :xx :yy
      make :penx=:a*(:yy*(sin(:xx))*(cos(deg(:z)))-:yy*(cos(:xx))*(sin(deg(:z))))+:x :peny=:a*(:yy*(sin(:xx))*(sin(deg(:z)))+:yy*(cos(:xx))*(cos(deg(:z))))+:y
      TO 心形 :a :x :y :z
      极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 1
      for ::i 0 2*PI
      make :penc=rand(15)+1
      极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::i 1-sin(::i)
      ]0.1
      TO 心形1 :a :x :y :z
      极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 sin(0)*((abs(cos(0)))^(1/2))/(sin(0)+7/5)-2*sin(0)+2
      for ::i 0 2*PI
      make :penc=rand(15)+1
      极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::i sin(::i)*((abs(cos(::i)))^(1/2))/(sin(::i)+7/5)-2*sin(::i)+2
      ]0.1
      TO MAIN
      MEMUSE
      while
      心形 50+10*rand(1) 0 0 -90
      心形1 50+10*rand(1) 0 0 -90
      WAIT 500
      MEMSEE
      ]
      MEMOUT


      26楼2017-02-22 12:19
      收起回复
        TO 放大置坐标旋转 :a :x :y :z :xx :yy
        setxy :a*(:xx*(cos(deg(:z)))-:yy*(sin(deg(:z))))+:x :a*(:xx*(sin(deg(:z)))+:yy*(cos(deg(:z))))+:y
        TO 初始放大置坐标旋转 :a :x :y :z :xx :yy
        make :penx=:a*(:xx*(cos(deg(:z)))-:yy*(sin(deg(:z))))+:x :peny=:a*(:xx*(sin(deg(:z)))+:yy*(cos(deg(:z))))+:y
        /*
        上面的两个函数是把参数方程的放大,旋转,置坐标,放在一起
        比如你要画y=x^2
        就先定一个值域x∈(-k,k)每一个点就是(x,x^2)
        TO 抛物线y=x^2 :a :x :y :z :k
        //上面的参数:a :x :y :z都照抄上(用来(:a)放大(:z)旋转置坐标),后面的:k就是值域
        初始放大置坐标旋转 :a :x :y :z :k*(-1) :k^2
        //上面是初始位置先把起点坐标置到(-k,k^2)因为-k平方等于k^2所以就直接写:k^2(一定要注意符号是不是有影响)
        FOR ::i :k*(-1) :k
        放大置坐标旋转 :a :x :y :z ::i ::i^2
        ]0.1
        就这样一个抛物线的图像就写好了
        如果是想画y=x^3就把上面的 :k^2改成((-1)*:k)^3 把下面的::i^2改成::i^3就可以了
        这几乎是万能的格式
        但是要注意!无穷点(就是除以0的情况)要用IF来判断要跳过无穷点
        上面的正切图像已经有先例这里就不介绍了
        这里所有的置坐标都是在数学图像外部的
        是相对原点移动多少像素,
        如果要放在数学函数内部,就要
        把 '初始放大置坐标旋转'跟'放大置坐标旋转'里的+:y跟+:x项替换成+:y*:a跟+:x*:a
        按ctrl+h然后全部替换,
        如果函数内外都要置坐标,就再加两个参数(+:xxx +:yyy)不乘以:a即可
        */


        28楼2017-02-22 18:15
        回复
          TO 费马螺线 :a :x :y :z :k
          极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 0
          for ::j 0 :k
          make :penc=rand(15)+1
          极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::j sqrt(::j)
          ]1
          极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 0
          for ::j 0 :k
          make :penc=rand(15)+1
          极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::j (-1)*sqrt(::j)
          ]1
          TO 阿基米德螺线 :a :x :y :z :c :b :k
          极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 0
          for ::j 0 :k
          make :penc=rand(15)+1
          极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::j :c+:b*::j
          ]1
          极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 0
          for ::j 0 :k
          make :penc=rand(15)+1
          极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::j (-1)*(:c+:b*::j)
          ]1
          TO MAIN
          MEMUSE
          FOR ::i 0 3600
          费马螺线 20 -150 0 ::i 10*PI
          阿基米德螺线 10 100 0 ::i 0 0.3 10*PI
          MEMSEE
          ]


          29楼2017-02-23 16:45
          收起回复

            本来是要搞光点的效果的,没相到是火焰的效果
            TO 随机光点 :个数 :范围 :形状 :x :y :n :w
            make :x=:penx :y=:peny :n=:pena :pena=50 :w=:penw
            IF (:范围/1.4)<99
            make :penw=(:范围)/1.4
            ]
            elif 1=1
            make :penw=99
            ]
            FOR ::i 1 :个数
            make :penx=:x :peny=:y
            rt 79
            fd rand(:范围)
            //oval 3 3 0
            ]
            make :penx=:x :peny=:y :pena=:n :penw=:w
            to 极坐标转参数坐标放大置坐标旋转 :a :x :y :z :xx :yy
            make :penx=:a*(:yy*(sin(:xx))*(cos(deg(:z)))-:yy*(cos(:xx))*(sin(deg(:z))))+:x :peny=:a*(:yy*(sin(:xx))*(sin(deg(:z)))+:yy*(cos(:xx))*(cos(deg(:z))))+:y
            随机光点 3 :a/3 0 0 0 0 0
            TO 极坐标转参数初始放大置坐标旋转 :a :x :y :z :xx :yy
            make :penx=:a*(:yy*(sin(:xx))*(cos(deg(:z)))-:yy*(cos(:xx))*(sin(deg(:z))))+:x :peny=:a*(:yy*(sin(:xx))*(sin(deg(:z)))+:yy*(cos(:xx))*(cos(deg(:z))))+:y
            TO 心形 :a :x :y :z
            极坐标转参数初始放大置坐标旋转 :a :x :y :z 0 1
            for ::i 0 2*PI
            make :penc=rand(15)+1
            极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::i 1-sin(::i)
            ]0.1
            TO 心形1 :a :x :y :z
            极坐标转参数初始放大置坐标旋转 :a :x :y :z 1.7 sin(1.7)*((abs(cos(1.7)))^(1/2))/(sin(1.7)+7/5)-2*sin(1.7)+2
            for ::i 1.63 7
            //make :penc=rand(15)+1
            极坐标转参数坐标放大置坐标旋转 :a :x :y :z ::i sin(::i)*((abs(cos(::i)))^(1/2))/(sin(::i)+7/5)-2*sin(::i)+2
            ]0.01
            TO MAIN
            make :penc=rand(15)+1
            MEMUSE
            WHILE
            心形1 50 0 0 -90
            心形1 90 0 -50 -90
            MEMSEE
            ]


            30楼2017-02-25 00:33
            回复

              TO 随机光点 :个数 :范围 :形状 :x :y :n :w :a
              make :x=:penx :y=:peny :n=:pena :pena=150 :w=:penw
              make :penc=rand(15)+1
              make :penw=16
              FOR ::i 1 :个数
              make :penx=:x :peny=:y :heading=rand(360)
              fd rand(:范围)
              oval 8 8 0
              ]
              make :penx=:x :peny=:y :pena=:n :penw=:w
              TO MAIN
              MEMUSE
              pu
              make :PEN9=:HEADING :heading=:pen9+10
              while
              make :penx=-400 :peny=300 :PEN9=:HEADING :heading=:pen9+3
              while :peny>(-250)
              make :PEN9=:HEADING :heading=:pen9+3 :penx=:penx+50
              随机光点 2 30 0 0 0 0 0 0
              IF :penx>400
              make :penx=-400 :peny=:peny-50
              ]
              ]
              MEMSEE
              ]


              31楼2017-02-26 00:03
              收起回复
                蜂窝数据解析
                曾经在f版上写过一个蜂窝想把它移植到clogo上来,但是因为变量太多而且原来的还有重笔.所以决定重写.
                原蜂窝有两个参数,一半径,二层数,现在要加放大旋转置坐标,
                还要再写一个以海龟为中心以海龟的方向为方向的蜂窝.
                蜂窝就是三组一样的横线,一组线旋转60度的到第二组线,再旋转60度得到第三组线
                线的层数是y=4x-1(y线层数,x蜂窝的层数)
                设蜂窝层数为b半径为a
                每层线的线段数目是1,2,3,~,b,b-1,b,b-1,b,~,b,~,3,2,1
                就是前面是从1到b,中间是b跟b-1的交错后面是b到1
                每一层的距离是sqrt(3)/2*a(二分之根号三乘以a)
                如果从上往下画起笔点是(-a/2,(2*b-1)*a*sqrt(3)/2)
                可以直接前进(2*b-1)*a*sqrt(3)/2右转90度后退-a/2(到达落笔点)(要记下起点位置方向,前面的动作都是抬笔状态)
                (下面所说的层数都是线段的层数,蜂窝的层数用b来表示)
                判断在第几层算出这一层的线段数
                第一层画完可以直接抬笔rt 60 fd a rt 120 bk a 到达第二层的起点
                第二年层到第三层就是抬笔 lt 60 fd a lt 120 bk a 到第三层(这明显需要分支语句来判断层数决定用rt 还是lt )
                到达第b层时下一层的线段数目是b-1(下面是到达b+1层的起点)
                rt 60 fd a rt 120 fd 2*a或者是lt 60 fd a lt 120 fd 2*a(b为奇数用rt b为偶数用lt )
                b+2层是lt 60 fd a lt 120 bk a或是rt 60 fd a rt 120 bk a
                倒数第b层到倒数b-1层rt 60 fd a rt 120 fd 2*a或者是lt 60 fd a lt 120 fd 2*a(b为奇数用rt b为偶数用lt )
                倒数第b-1层到倒数b-2层lt 60 fd a lt 120 fd 2*a或者是rt 60 fd a rt 120 fd 2*a(b为奇数用lt b为偶数用rt )
                rt 60 fd a rt 120 bk a跟lt 60 fd a lt 120 bk a是用在线段数加1的情况下的
                rt 60 fd a rt 120 fd 2*a跟lt 60 fd a lt 120 fd 2*a是用在线段数减一的情况下的
                涉及变量起点坐标方向,线层数,每一层的线段数,判断倒数第几层的中间量(看情况可以不要)画到第几层


                32楼2017-03-26 13:19
                收起回复