Processing을 IntelliJ+Kotlin+Gradle에서 개발

Processing의 에디터 사용하기 어려워, Java 돌아가 미묘하게 기분 나쁘고,
어차피라면 Kotlin으로 쓰고 싶고, Gradle로 관리하고 싶지 않아 취지.

Java8 설치



Processing이 Java9 이상이면 움직이지 않기 때문에
htps : // 기주 b. 코 m / p 로세 센 g / p 로세 센 g / ぃき / 쏘 r d P t t rms # 우세 r 콘텐 t ゔ ぁ ゔ ぇ
$ brew cask reinstall caskroom/versions/zulu8
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    10.0.2, x86_64: "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    1.8.0_222-zulu-8.40.0.25, x86_64:   "Zulu 8"    /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

새 프로젝트 만들기





Gradle을 선택하고 Java와 Kotlin을 확인하십시오.
Project SDK 는 미리 설치한 1.8 를 지정해 주세요.

나머지는 길

Gradle에 Processing 추가



build.gradle
dependencies {
    compile group: 'org.processing', name: 'core', version: '3.3.7'
}
build.gradle 열기dependenciesprocessing 를 추가합니다.

그러면 다운로드가 시작됩니다.
다운로드가 완료되면 External Librariesorg.processing:core가 추가되어 있으면 OK입니다.

프로그램 만들기


src/main/kotlin 에 새 Kotlin 파일을 만듭니다.



파일 이름은 Main.tk입니다.

src/main/kotlin/Main.tk
import processing.core.*

class Main : PApplet () {
    fun run() {
        return PApplet.main(Main::class.java.simpleName)
    }
}

fun main() : Unit = Main().run()

Processing 실행에 필요한 부분만을 기술한 슈퍼 심플한 상태입니다.

실행해보기


fun main() 옆에 나타나는 삼각형에서 Run MainKt를 실행하십시오.



실행되면,



빈 처리 앱이 실행되었습니다.

Kotlin에서 구현해보기



Processing 공식 안에 있는 Examples의 Follow 3을 시도해 Kotlin에서 구현해 보겠습니다.
htps : // p 로세신 g. 오 rg / 에ぁ mp ぇ s / 흠 w3. HTML

src/main/kotlin/Main.tk
import processing.core.*

class Main : PApplet () {
    var x = FloatArray(20)
    var y = FloatArray(20)
    var segLength = 18

    override fun settings() {
        size(640, 360)
    }

    override fun setup() {
        strokeWeight(9F)
        stroke(255F, 100F)
    }

    override fun draw() {
        background(0f)
        dragSegment(0, mouseX.toFloat(), mouseY.toFloat())
        for (i in 0 until x.size - 1) {
            dragSegment(i + 1, x[i], y[i])
        }
    }

    private fun dragSegment(i: Int, xin: Float, yin: Float) {
        val dx = xin - x[i]
        val dy = yin - y[i]
        val angle = PApplet.atan2(dy, dx)
        x[i] = xin - PApplet.cos(angle) * segLength
        y[i] = yin - PApplet.sin(angle) * segLength
        segment(x[i], y[i], angle)
    }

    private fun segment(x: Float, y: Float, a: Float) {
        pushMatrix()
        translate(x, y)
        rotate(a)
        line(0F, 0F, segLength.toFloat(), 0F)
        popMatrix()
    }

    fun run() {
        return PApplet.main(Main::class.java.simpleName)
    }
}

fun main() : Unit = Main().run()

이렇게 하면



Processing이 안전하게 작동하는지 확인할 수 있습니다.

라이브러리 추가



gradle에 쓰면

build.gradle
repositories {
    mavenCentral()
    maven { url "https://clojars.org/repo" }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile group: 'org.processing', name: 'core', version: '3.3.7'
    compile group: 'ddf.minim', name: 'ddf.minim', version: '2.2.0'
    compile group: 'controlp5', name: 'controlp5', version: '2.2.4'
    compile group: 'de.sojamo', name: 'oscp5', version: '0.9.8'
}

mavenCentral 에는 oscp5controlp5 가 없었기 때문에 clojars.org 를 repositories 에 추가했습니다.



이것으로 싸울 수 있다.

좋은 웹페이지 즐겨찾기