forked from kscience/visionforge
antenna example
This commit is contained in:
parent
f2d7e20fd3
commit
8611327cc4
43
demo/playground/src/jvmMain/kotlin/antenna.kt
Normal file
43
demo/playground/src/jvmMain/kotlin/antenna.kt
Normal file
@ -0,0 +1,43 @@
|
||||
package space.kscience.visionforge.examples
|
||||
|
||||
import space.kscience.kmath.complex.Quaternion
|
||||
import space.kscience.kmath.geometry.RotationOrder
|
||||
import space.kscience.kmath.geometry.degrees
|
||||
import space.kscience.kmath.geometry.fromEuler
|
||||
import space.kscience.visionforge.html.ResourceLocation
|
||||
import space.kscience.visionforge.solid.*
|
||||
import kotlin.math.PI
|
||||
|
||||
fun main() = makeVisionFile(resourceLocation = ResourceLocation.SYSTEM) {
|
||||
|
||||
val direction = Quaternion.fromEuler( 45.degrees, 45.degrees, 0.degrees, RotationOrder.XYZ)
|
||||
|
||||
vision("canvas") {
|
||||
requirePlugin(Solids)
|
||||
solid {
|
||||
rotationX = -PI / 2
|
||||
rotationZ = PI
|
||||
axes(200)
|
||||
ambientLight()
|
||||
cylinder(50, 5, name = "base")
|
||||
solidGroup("frame") {
|
||||
rotationY = PI/2
|
||||
rotationX = -PI/2
|
||||
rotationZ = -PI/2
|
||||
z = 60
|
||||
axes(200)
|
||||
solidGroup("antenna") {
|
||||
tube(40, 10, 30)
|
||||
sphereLayer(100, 95, theta = PI / 6) {
|
||||
z = 100
|
||||
rotationX = -PI / 2
|
||||
}
|
||||
cylinder(5, 30) {
|
||||
z = 15
|
||||
}
|
||||
this.quaternion = direction
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user