Der Verarbeitungseditor ist schwer zu bedienen, Java-ähnlich ist etwas unangenehm, Wie auch immer, ich möchte in Kotlin schreiben und es in Gradle verwalten.
Weil die Verarbeitung nicht funktioniert, wenn es sich um Java 9 oder höher handelt https://github.com/processing/processing/wiki/Supported-Platforms#user-content-java-versions
$ 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
Wählen Sie Gradle und überprüfen Sie Java und Kotlin.
Geben Sie für "Project SDK" die soeben installierte "1.8" an.
Der Rest ist entlang der Straße
build.gradle
dependencies {
compile group: 'org.processing', name: 'core', version: '3.3.7'
}
Öffnen Sie build.gradle
Fügen Sie "Verarbeitung" innerhalb von "Abhängigkeiten" hinzu.
Dann startet der Download. Wenn der Download abgeschlossen ist, ist es in Ordnung, wenn "org.processing: core" zu "Externe Bibliotheken" hinzugefügt wird.
Erstellen Sie eine neue Kotlin-Datei in src / main / kotlin
.
Der Dateiname lautet "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()
Es ist ein supereinfacher Zustand, der nur den Teil beschreibt, der zum Ausführen der Verarbeitung erforderlich ist.
Führen Sie "Run MainKt" aus dem Dreieck aus, das neben "fun main ()" angezeigt wird.
Wenn ausgeführt,
Eine leere Verarbeitungs-App wurde ausgeführt.
Versuchen wir ** Follow 3 ** in Beispielen in der Verarbeitungsformel und implementieren Sie es in Kotlin. https://processing.org/examples/follow3.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()
Wenn du das machst
Sie können sehen, dass die Verarbeitung ordnungsgemäß funktioniert.
Wenn Sie in Gradle schreiben
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'
}
Ich habe clojars.org
zu Repositories hinzugefügt, weil mavenCentral nicht oscp5
und controlp5
hatte.
Sie können damit kämpfen.
Recommended Posts