코드를 사용하여 아름다운 기하학 예술을 만들다.

코드를 사용하여 아름다운 기하학 예술을 만들다.


순환, 제어 흐름과 전용 함수 등 기본 코드를 사용하여 기하학적 예술품을 생성한다.

g2D 기하학 예술 실례


   
   

장치


가지러 가다


$ go get -u github.com/lucasepe/g2d

사용 가능한 버전


Here you can find g2d already compiled:
  • MacOS
  • Linux
  • 창문
  • 사용 방법


    로컬g2d 스크립트를 실행하려면:
    $ g2d /path/to/my-script.g2d
    
    웹에 저장된 g2d 스크립트를 실행하려면:
    $ g2d http://my-cool-site.com/remote/path/to/my-script.g2d
    
    --directory 플래그를 사용하여 생성된 PNG 이미지에 대한 대상 폴더를 지정합니다.

    d 프로그래밍 언어 문법


    예시 프로그램은 examples/ 아래에서 찾을 수 있으며, 이 내용과 표준 라이브러리의 일부 내용을 보여 준다.

    타입


    g2D는 다음과 같은 데이터 유형이 있다. g2D,bool,int,float,str,arrayfn.
    타입
    구문
    필기
    부울true false지력.0 42 1234 -5기호가 있는 64비트 정수입니다.
    떠다니다0.5 4.2 1.234 -5.564비트 더블 정밀도 부동 소수점
    str"" "foo" "\"quotes\" and a\nline break"변경되지 않는 바이트 배열입니다.
    어레이[] [1, 2] [1, 2, 3]확장형 어레이append() 내장형 어레이 사용)
    fnfn(a, b) { ... }사용자 정의 함수 정의

    바인딩


    변수는 := 연산자를 사용하여 한정한다.
    a := 3
    b := 1.2
    
    변수는 정수, 부동점, 문자열 또는 배열/해시일 수 있습니다.
    변수를 업데이트하려면 equals= 연산자를 지정합니다.
    a := 3    // Binding
    a = a + 5 // Updating
    

    산술 연산

    g2D 지원intfloat 유형의 모든 기본 산술 연산.
    a := 5
    b := 3
    
    c := a + b
    d := c / 2
    e := d * d
    

    내장 용기

    g2d에는 내장 용기가 있다. array.

    어레이


    배열은 선형 순서에 따라 항목을 구성하는 목록이다.수조는 여러 종류를 수용할 수 있다.
    a := [1, 2.3, "hello!"]
    b := [false, true, "Hello World", 3, 3.13]
    
    push 내장 함수를 사용하여 스토리지에 추가:
    a = append(a, "another")
    
    이렇게 배열의 컨텐트를 반복할 수 있습니다.
    i := 0
    while( i < len(a) ) {
        print( "Array index ", i, " contains ", a[i], "\n")
        i = i + 1
    }
    
    포함된 정의는 다음과 같은 출력을 생성합니다.
    Array index 0 contains 1
    Array index 1 contains 2.3
    Array index 2 contains hello!
    Array index 3 contains another
    

    기능

    g2D fn를 사용하여 함수를 정의합니다. 이 함수는 변수에 지정되어 이름/호출에 사용됩니다.
    sum := fn(a, b) { return a + b }
    
    print(sum(5,3), "\n")       // Outputs: 8
    print(sum(2.5,7.5), "\n")   // Outputs: 10
    
    함수는 다른 함수에 값으로 전달할 수 있습니다.
    addTwo := fn(a, b, f) { 
        return 2 + f(a, b) 
    }
    
    tot := addTwo(68, 1, sum)
    print(tot, "\n")            // Outputs: 71
    
    함수 중의 함수
    multiplier := fn(q) {
        return fn(x) {
            return x*q
        }
    }
    
    multThree := multiplier(3)
    
    print(multThree(2), "\n")  // Outputs: 6
    print(multThree(3), "\n")  // Outputs: 9
    print(multThree(4), "\n")  // Outputs: 12
    

    If else 문

    g2D 지원if-else 문장.
    max := fn(a, b) {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
    
    print( max(1, 2) )  // Outputs: 2
    

    Switch 문

    g2D 지원switchcase 표현식:
    switch n := randi(10) {
        case n % 2 == 0 {
            print(n, " is even", "\n")
        }
        default {
            print(n, " is odd", "\n")
        }
    }
    

    While 주기

    g2D 하나의 순환 구조만 지원하고 while 순환:
    i := 30
    while (i > 0) {
        print(i, " ")
        i = i - 10
    }
    // 30 20 10
    

    내장 함수


    핵심


    기능
    묘사exit([status])지금 옵션 상태 또는 0으로 프로그램 종료input([prompt]표준 입력에서 한 줄을 읽으면 지정한 힌트를 인쇄할 수 있습니다print(...)문자열을 표준 출력으로 내보내기printf(pattern, ...)문자열을 stdout에 출력 (지정한 패턴에 따라 포맷)sprintf(pattern, ...) printf(...)와 유사하지만 문자열을 반환합니다.bool(val)값을 부울 값으로 변환float(val)십진수 값str를 부동 소수점 값으로 변환 - val이 잘못되면 null로 되돌려줍니다int(val)십진수str를 int로 변환하기 - val이 잘못되면 null로 되돌려줍니다str(val)val의 문자열 표현 형식을 되돌려줍니다len(iterable)iterable (문자열이나 그룹) 의 길이를 되돌려줍니다.append(array, val)새 그룹을 되돌려줍니다. 그 값은 그룹의 끝으로 밀려납니다.

    계산하다


    기능
    묘사abs(x)x의 절대값을 되돌려줍니다atan(x)x의 어차피 커팅 값을 되돌려줍니다. (호도 단위)atan2(x, y)어차피cos(x)호도 매개 변수 x의 여현을 되돌려줍니다degrees(angle)호도를 도로 바꾸다hypot(p, q)신고서sqrt(p*p + q*q)lerp(start, stop, amt)특정 증량으로 두 숫자 사이의 숫자를 계산하다map(v, b1, e1, b2, e2)숫자를 한 범위에서 다른 범위로 다시 비추다max(v1....vn)숫자 서열의 최대 값을 되돌려줍니다min(v1....vn)숫자 서열의 최소값을 되돌려줍니다pow(x, y)반환x**y,y의 기x지수sin(x)호도 매개 변수 x의 정현값을 되돌려줍니다sqrt(x)x의 제곱근을 되돌려줍니다radians(angle)도 측정 값을 대응하는 호도 값으로 바꾸다randf([min], [max])최소값과 최대값 사이의 무작위 부동 소수점 값을 되돌려줍니다 - 기본적으로 최소값 = 0.0, 최대값 = 1.0randi([min], [max])최소값과 최대값 사이의 무작위 정수를 되돌려줍니다

    기본 그래픽 기능


    기능
    묘사size(w,[h])도면의 크기 설정하기;w와 h를 동시에 지정하면 사각형 이미지가 만들어지고 그렇지 않으면 제곱 이미지가 만들어집니다.viewport(xMin, xMax, yMin, yMax, xOffset, yOffset)사용자정의 좌표계 설정하기;화면 재설정 수행(그래픽 지우기)clear()전체 이미지를 현재 색상으로 채우기;모든 도면 지우기fillColor(hexcolor)채움 색상을 지정된 육각형 색상으로 설정하기;샘플 fillColor("ff0000")fillColor(r, g, b, [a])채우기 색상을 r, g, b, a 값으로 설정 - 0과 255 사이(0과 255 포함)strokeColor(hexcolor)획 색상을 지정된 육각형 색상으로 설정하기;strokeColor("ff0000") 예strokeColor(r, g, b, [a])획 색상을 r, g, b, a 값으로 설정합니다. 0과 255 사이여야 합니다. 0과 255을 포함합니다.strokeWeight(weight)획 두께를 지정된 너비로 설정합니다.dashes([s1, s2, ...sn])사용할 현재 대시 모드 설정(대시를 비활성화하려면 0 매개변수 호출 사용)stroke()현재stroek 색상과 선폭을 사용하여 현재 경로를 그리면 경로가 지워집니다fill()현재 충전 색깔로 현재 경로 채우기;열린 하위 경로는 암시적으로 닫혔습니다.이 작업을 수행하면 경로가 지워집니다.fillAndStroke()현재 충전 색깔로 현재 경로를 채우고 현재 획 색깔로 획을 그립니다.이 작업을 수행하면 경로가 지워집니다.push()도면 컨텍스트를 스택으로 밀어 현재 상태를 저장합니다.pop()스택에서 마지막으로 저장된 도면 컨텍스트 상태 복원snapshot([filename])현재 도면을 사용하여 PNG 이미지를 작성합니다.파일 이름이 생략되면, 자동으로 누진 계수기를 생성하고, 이 계수기는 매번 snapshot() 호출될 때마다 증가합니다.나중에 애니메이션을 생성하려는 경우(생성된 모든 PNG 이미지 사용) 유용합니다.xpos()현재 X 위치로 돌아가기(현재 점이 있는 경우)ypos()현재 Y 위치로 돌아가기(현재 점이 있는 경우)

    도형 원어


    기능
    묘사arc(x, y, r, sa, ea)(x, y) 중심의 반지름 r의 호를 그립니다. sa 각도 u에서 시작하여 ea 각도로 끝나는 경로를 따라circle(x, y, r)[x, y] 좌표를 중심으로 반경이 r인 원을 그려라ellipse(x, y, rx ,ry)[x, y] 좌표를 중심으로 반경 rx와ry의 타원을 그립니다line(x1, y1, x2, y2)점(x1, y1)에서 점(x2, y2)으로 선 그리기point(x, y)지정된 좌표에 점을 그립니다(크기는 획 가중치와 같음).quad(x1, y1, x2,y2, x3,y3, x4,y4)제공된 정점을 사용하여 사각형 그리기rect(x, y, w, h, [tl, tr, br, bl])왼쪽 위 모서리(x, y)에 있는 (가로 x 높이) 사각형을 그립니다.반경 하나만 지정하면 모든 모퉁이가 같은 굴곡도를 가지고 있고, tl,tr,br,bl을 지정하면 각 모퉁이마다 다른 곡률을 가질 수 있다triangle(x1,y1, x2,y2, x3,y3)제공된 정점을 사용하여 삼각형 그리기star(cx, cy, n, or, ir)성형 cx를 그려라.cy는 중심이고 n은 첨봉수이며,ir는 외반경과 내반경이다

    경로


    기능
    묘사beginPath()새로운 길을 열다closePath()현재 점에서 현재 하위 경로로 세그먼트 추가 시작moveTo(x, y)지정한 x, y 점에서 시작하는 새 하위 경로의 시작점을 설정합니다lineTo(x, y)현재 점에서 시작하는 현재 경로에 선 세그먼트 추가하기arcTo(x1, y1, x2, y2, r)주어진 제어점과 반지름을 사용하여 현재 하위 경로에 호 추가하기quadraticCurveTo(x1, y1, x2, y2)현재 하위 경로에 두 번째 Bézier 커브 추가하기;x1, y1은 제어점, x2, y2는 끝점

    바꾸다


    기능
    묘사rotate(angle, [x, y] )시계 반대 방향으로 회전하여 현재 행렬 업데이트하기;x, y를 지정하면 점 주위를 회전하고 그렇지 않으면 원점 주위를 회전합니다(각도는 호도 단위).scale(sx, sy, [x, y])sx,sy 비례 인자로 현재 행렬 업데이트하기;x, y를 지정하면 점을 기준으로 배율이 조정되고 그렇지 않으면 원점을 기준으로 배율이 조정됩니다.translate(x, y)현재 행렬을 x와 y로 변환identity()현재 변환 매트릭스를 단위 매트릭스로 재설정transform(x, y)점 x, y를 현재 행렬에 곱하여 변환된 위치로 되돌려줍니다

    텍스트


    기능
    묘사text(str, x, y, [ax, ay])지정한 위치점 x, y에 지정한 텍스트str 그리기;포지셔닝 포인트는 x-w*ax, y-h*ay, 그 중에서 w, h는 텍스트의 크기입니다(기본적으로 ax=0.5,ay=0.5는 텍스트를 지정한 점에 가운데로 배치합니다)textWidth(str)현재 글꼴에 지정한 텍스트str의 표시 폭을 되돌려줍니다fontSize(size)글꼴 높이 설정

    이미지


    기능
    묘사imageGet(path/to/png)로컬 파일 시스템에서 PNG 이미지 로드imageAt(im, x, y, [ax, ay])지정한 위치점 x, y에서 지정한 그림im 그리기;(ax와 ay는 x와 y 편이) ax=0.5,ay=0.5로 그림을 지정한 점에 가운데로 놓기

    좋은 웹페이지 즐겨찾기