three.js 绑定陀螺仪实现例子如下:<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="renderer" content="webkit"><script><div id="CanvasBody"> <input id="onDevice" type="button" value="开启陀螺仪"></div><!-- 鼠标控制 (OrbitControls.js) --><script>THREE.OrbitControls=function(object,domElement){return}event.preventDefault()event.stopPropagation()handleMouseWheel(event)scope.dispatchEvent(startEvent)scope.dispatchEvent(endEvent)}function onKeyDown(event){if(scope.enabled===false||scope.enableKeys===false||scope.enablePan===false){return}handleKeyDown(event)}function onTouchStart(event){if(scope.enabled===false){return}switch(event.touches.length){case 1:if(scope.enableRotate===false){return}handleTouchStartRotate(event)state=STATE.TOUCH_ROTATEbreakcase 2:if(scope.enableZoom===false){return}handleTouchStartDolly(event)state=STATE.TOUCH_DOLLYbreakcase 3:if(scope.enablePan===false)</script><!-- 控制陀螺仪 (DeviceOrientationControls.js) --><!-- 代码 --><script>"use strict"(function (CanvasBody, _window) {var Scene = void 0,Camera = void 0,Renderer = void 0,FpsStats = void 0,AnimateFrame = void 0,Controls = void 0,Devices = void 0var onDevice = document.getElementById("onDevice") var isDeviceing = 0/* 初始化函数 */function initScene() {Scene = new THREE.Scene() }// 初始化照相机function initCamera() {Camera = new THREE.PerspectiveCamera(60, CanvasBody.clientWidth / CanvasBody.clientHeight, 1, 3000) Camera.position.set(1, 0, 0) Camera.lookAt({ x: 200, y: 0, z: 0 }) }// 初始化渲染器function initRenderer() {Renderer = new THREE.WebGLRenderer() Renderer.setSize(CanvasBody.clientWidth, CanvasBody.clientHeight) Renderer.setClearColor(0x000000, 1) CanvasBody.appendChild(Renderer.domElement) }// 初始化监视器function initFpsStats() {FpsStats = new Stats() CanvasBody.appendChild(FpsStats.domElement) FpsStats.domElement.style.cssText = "position: absolutetop: 0left: 0" }// 初始化控制器function initControls() {Controls = new THREE.OrbitControls(Camera) }// 初始化陀螺仪function initDevices() {Devices = new THREE.DeviceOrientationControls(Camera) }/* 窗口改变事件 */function windowChange() {initCamera() Renderer.setSize(CanvasBody.clientWidth, CanvasBody.clientHeight) initDevices() initControls() }/* 控制陀螺仪 */function controlDevice(event) {if (isDeviceing === 0) {isDeviceing = 1 onDevice.value = "关闭陀螺仪" } else {isDeviceing = 0 onDevice.value = "开启陀螺仪" }}/* 动画 */function animate(time) {FpsStats.begin() Renderer.clear() isDeviceing === 0 ? Controls.update() : Devices.update() Renderer.render(Scene, Camera) FpsStats.end() AnimateFrame = requestAnimationFrame(animate) }/* 初始化 */function init() {// 初始化initScene() initCamera() initRenderer() initFpsStats() initControls() initDevices() // 初始化绑定陀螺仪Devices.connect() _window.addEventListener("resize", windowChange, false) onDevice.addEventListener("click", controlDevice, false) AnimateFrame = requestAnimationFrame(animate) }init() /* 场景内物体 */(function () {var r = Math.sqrt(5000 * 1827 / 4 / Math.PI) var texture = THREE.ImageUtils.loadTexture("http://cdn.attach.w3cfuns.com/notes/pics/201606/14/141100b7m85b4k8kb3337z.jpg", {}, function () {var geometry = new THREE.SphereGeometry(r, 100, 100) var material = new THREE.MeshLambertMaterial({map: texture,side: THREE.DoubleSide}) var mesh = new THREE.Mesh(geometry, material) Scene.add(mesh) mesh.position.set(0, 0, 0) var al = new THREE.AmbientLight(0xffffff) Scene.add(al) }) })()})(document.getElementById("CanvasBody"), window)</script></body></html>
中程弹道导弹是将弹道导弹依射程进行分类时的一个子类。通常它的范围被限定为地对地导弹。
按照一般的定义,中程弹道导弹是指射程在3000~5500千米之间的地对地弹道导弹。这个分类是很模糊的,因为射程较远的中程导弹与射程较短的洲际导弹之间没有什么本质性区别。而且,各国对于中程弹道导弹的射程范围的定义也不尽相同。这里使用的是美国导弹防御署的定义。研制中程弹道导弹可能成为一国研制洲际导弹的中间步骤。
中程弹道导弹曾经在世界上大量装备。1987年,美国与苏联签订中导条约,根据此条约,这两国的中程弹道导弹被全部销毁。
目前中程弹道导弹主要在中等大国和第三世界国家服役。朝鲜和伊朗研究中程弹道导弹的可能计划引起了西方国家普遍的担心,因为这两个国家拥有的中程导弹将威胁到欧洲和美国的亚洲盟国。
中国东风-3中程弹道导弹
东风-3是我国第一种中程弹道导弹,也是中国完全自行设计的第一种战略导弹,北约代号CSS-2。该导弹采用机动发射、单级、液体燃料。
东风-3于1966年12月26日首次试射,1971年5月服役。1975年8月4日,东风-3战略核导弹定型生产。1985年12月东风-3改进型研制完成,射程从2700公里增加到3500公里以上,改进后的型号可以携带多弹头,当量约5~10万吨,分别攻击不同的目标,其射程可覆盖菲律宾的美军基地。
东风-3型导弹采用惯性制导方式,动力装置为液体火箭发动机,战斗部装4800磅常规高爆炸药或百万吨当量级核弹头。
中国在20世纪80年代估计生产了90~120枚东风-3型导弹,正逐步被东风-21A型所取代,目前最多还有40枚部署现役。东风-1/东风-2/东风-3都属于中国第一代弹道导弹。
东风-3型导弹推进剂为单级硝酸和偏二甲基液体燃料;射程2650公里,DF-3A为3500公里;弹长24米,弹径2.25米,弹重64吨,弹头1500公斤常规高爆炸药或1枚100~150万吨级当量核弹头;制导惯性陀螺积分仪;精度1500米~3000米。
中国东风-4型中程弹道导弹
东风-4是中国第一种两级火箭(使用东风-3作为第一级火箭),北约代号CSS-3。其研制工作要求实现一系列技术突破(如发动机可靠性、性能更好的耐高温材料及改进型制导系统等)。
该型导弹是一种采用液氢燃料和捷联式惯性制导系统的中程弹道导弹。
东风-4原设计射程超过4000公里,以美军驻关岛的B-52轰炸机基地为目标。此后其射程增至5000公里以上,以将莫斯科及其他苏联西部城市纳入射程范围。
中国于1965年3月正式决定研制该型导弹,并于1970年1月30日试射成功,1980年开始部署。该型导弹是一种陆基机动导弹,但以洞库、隧道或地下发射井为基地,其设计性能可允许其机动至发射台,在加注燃料后发射。大多数东风-4型导弹储藏在山洞里,战时必须先移至露天,花两个小时灌装好液体燃料后才能发射。
1986年,东风-4弹道导弹进行了多弹头分导式重返大气层的第一次试验。估计有30枚东风-4型导弹正在服役。东风-4的民用型火箭为长征-1,该型火箭曾在1970年成功地发射了中国第一颗人造卫星。
东风-4弹道导弹结构为两级,推进剂为硝酸和偏二甲肼液体燃料;射程4000公里,4750公里(DF-4A);弹长28米,弹径2.25米,弹重82吨,弹头为一枚2200公斤的300万吨级当量热核弹头,另有指出DF-4可能装有集束或分导弹头;制导为捷联式全补偿惯性制导,精度1400~3500米;准备时间60~120分钟。
中国东风-21中程弹道导弹
东风-21是一种二级中程弹道导弹,其射程超过2000公里。东风-21是中国第一种采用固态燃料的弹道导弹。它采用竖立式运输发射架发射,也是中国第一种具备公路机动性能的导弹。
东风-21于1978年开始研制,并于1985年5月20日进行了第一次成功的试射,1991年开始部署,逐步取代老式的东风-3A。据报道,该型导弹安装了中国第一种自动化火力指挥和控制系统,并安装了陀螺仪惯性制导系统和弹载计算机。由于标志攻击准确度的圆公差概率(CEP)指标较差,东风-21原型只用于执行核弹攻击任务。
东风-21主要有三种型号服役;早先服役的Mod1射程为1800公里,酬载600公斤,估计它的核威力在250到300千吨之间,中国在制造了大约100枚以后已经停産,为因应台海局势已经有相当部份的部队改装了常规弹头;改良后的Mod2(东风-21A)射程增至2700公里,量産持续中;最新型的Mod3为穿破TMD和NMD的保护伞再作精进,拥有精密导引与主被动突防辅助装置,再入大气层部有气动翼面控制弹道,虽机动力和战机相比拉不到几个G,好在马赫10的速度大大缩小了拦截导弹的误差容忍度,使其升空迎击时错之丝毫,差之数里。其CEP可降到50米左右。
东风二十一北约代号CSS-5;结构两级,燃料聚硫凝固橡胶複合推进剂;制导方式为捷联惯性,三轴静压气浮陀螺,弹道载计算机;射程1700公里,发射方式冷发射,圆周偏差率不详,平台车载机动发射,服役时间已经全部退役。
东风二十一甲北约代号CSS-5Mod-1;结构两极,燃料端烃基聚丁二烯高能固体推进剂;制导方式捷联惯性,三轴静压气浮陀螺,弹道载计算机;射程1800公里,发射方式冷发射,圆周偏差率不详,平台车载机动发射;打击对象为日本、印度;服役时间1991年。
东风二十一乙北约代号CSS-5Mod-2;燃料端烃基聚丁二烯高能固体推进剂;射程2700公里,制导方式捷联惯性,三轴静压气浮陀螺,弹道载计算机;发射方式冷发射,圆周偏差率不详,平台车载机动发射;打击对象为日本、印度。
东风二十一丙北约代号CSS-5Mod-3;燃料端烃基聚丁二烯高能固体推进剂,射程3200公里,制导方式捷联惯性,弹道计算机,末端主动雷达制导;发射方式冷发射,圆周偏差率20公尺,平台车载机动发射,打击对象为大型水面舰支。
东风二十一发射单位为六辆卡车(一辆发射车,五辆后勤车)载车为汉阳特种汽车制造厂生产的HY-473牵引车。
东风二十一甲淘汰了聚硫凝固橡胶复合推进剂,采用更先进的端烃基聚丁二烯高能推进剂。
东风二十一乙发射单位从六辆卡车减少到三辆,减轻了后勤的负担。
中国东风-25中程弹道导弹
东风二十五是在二十一基础上改进的中程导弹,改进了推进剂,固体火箭发动机。
东风二十五的弹头舱能够携带三枚分导式核弹头,它是目前世界上唯一能够携带多枚弹头的中程导弹。
东风二十五结构为两级,燃料为端烃基聚丁二烯高能固体推进剂,射程3200公里,制导方式捷联惯性,弹道计算机;圆周偏差率20~40米,平台车载机动发射。