所以我正在尝试学习一些 3D 编程,并尝试做一些实验来更好地理解事物是如何工作的。
我正在尝试的一件事是(使用threejs)画一条线并随机旋转它。
我从来都不是矩阵专家,我总是以“在我脑海中有意义”的方式在 2D 中做事
# CoffeeScript
get_angle:->
Math.atan2(@props.velocity[1],@props.velocity[0])
rotate:(amount)->
ang = @get_angle()
mag = @get_speed()
# props is a velocity vector, [0] is x and [1] is y
@props.velocity[0] = Math.cos(ang+amount)*mag
@props.velocity[1] = Math.sin(ang+amount)*mag
传入的数量是随机的......生成随机“行走”
我现在想知道如何在 3d 中做同样的事情?现在应用程序运行良好(我看到了我的线路),但它是“平坦的”。没有深度(由于 Z 组件没有被修改)这就是我想做的事情,这会是一个聪明的方法吗?
咖啡脚本
get_angle:->
Math.atan2(@props.velocity[1],@props.velocity[0])
get_angle2:->
# not sure about this, but I feel like I need to be finding the angle from the z now and something else.
rotate:(amount)->
ang = @get_angle()
ang2 = @get_angle2()
mag = @get_speed()
# props is a velocity vector, [0] is x and [1] is y
@props.velocity[0] = Math.cos(ang+amount)*mag
@props.velocity[1] = Math.sin(ang+amount)*mag
@props.velocity[2] = # I have a feeling here I would do something with ang2 and amount?
我知道从技术上讲,我可能想传递两个组件的旋转,但我想也许我可以尝试让所有三个组件旋转相同。