我想教球体绕 Y 轴旋转。
问题是如何做到这一点?
这是代码,它不能按我的需要工作:
Vue.config.devtools = false
Vue.config.productionTip = false
var app = new Vue({
el: '#app'
})
.rotate {
animation: rotate 5s infinite;
transform-style: preserve-3d;
}
@keyframes rotate {
to {
transform: rotateY(360deg);
}
}
.svg {
transform-style: preserve-3d;
}
.circle {
stroke: orangered;
fill: rgba(0, 0, 0, 0);
}
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<svg width="178px" height="178px" version="1.1" viewBox="-100 -100 200 200" class="svg">
<g class="rotate">
<circle class="circle" v-for="x in 10" cx="0" cy="0" :r="95" :style="`transform: rotateY(${12*x}deg); transform-style: preserve-3d;`" />
</g>
</svg>
</div>
原来,磁盘正在旋转。我需要它是球体的旋转,就像地球绕着它的轴旋转一样。
我们设法找出了为什么这段代码不起作用,原因是,不管内部旋转如何,整个 SVG 绘图都是一个平面。
你如何解决这个问题并为整个球体的旋转设置动画?
在所有答案中,我希望获得针对不同技术的所有可能解决方案。
适用:HTML、CSS、SVG、SMIL、Canvas、WebGl、three.js 等。
PS:球体应该完全由示例中模型上的环组成,而不是任何球体。
后墙是不透明的,前墙是透明的,因此您可以在 Three.js 的中心放置一些东西(例如另一个球体):