91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5怎么實現圓錐

發布時間:2022-03-07 16:55:23 來源:億速云 閱讀:147 作者:iii 欄目:web開發

這篇文章主要介紹“HTML5怎么實現圓錐”,在日常操作中,相信很多人在HTML5怎么實現圓錐問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”HTML5怎么實現圓錐”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一.簡介

圓錐,數學領域術語,有兩種定義。

解析幾何定義:圓錐面和一個截它的平面(滿足交線為圓)組成的空間幾何圖形叫圓錐。

立體幾何定義:以直角三角形的一條直角邊所在直線為旋轉軸,其余兩邊旋轉形成的面所圍成的旋轉體叫做圓錐。該直角邊叫圓錐的軸 。

未命名

二.圓錐模擬

通過以上兩個定義,我可以模擬出圓錐上所有的點:

JavaScript Code復制內容到剪貼板

var pointPositions = [];  

for (var i = -100; i < 200; i += 10) {  

    var xTemp = getRandomNumber(-i, i);  

    var zTemp = Math.sqrt(Math.abs(i * i - xTemp * xTemp));  

    pointPositions.push(new Vector3(xTemp, i, zTemp));  

}  

i 既是h,又是半徑r。

這個時候,我們生成的 Z都是大于零的,不過沒有關系,我們等下可以通過旋轉來補齊所有的點。

三.旋轉與投影

JavaScript Code復制內容到剪貼板

//旋轉  

    function rotate(angle) {  

        for (var i = 0; i < pointPositions.length; i++) {  

            var tempX = pointPositions[i].x;  

            var tempZ = pointPositions[i].z;  

            pointPositions[i].x = pointPositions[i].x * Math.cos(angle) - pointPositions[i].z * Math.sin(angle);  

            pointPositions[i].z = pointPositions[i].z * Math.cos(angle) + tempX * Math.sin(angle);  

        }  

    }  

    //投影  

    function projection(v) {  

        var v1 = new Vector3();  

        v1.x = v.x * distance / Math.abs(cameraPosition.z - v.z);  

        v1.y = v.y * distance / Math.abs(cameraPosition.z - v.z);  

        v1.z = v.z;  

        return v1;  

    }  

四.動畫

JavaScript Code復制內容到剪貼板

var currentAngle = 0;  

    var roundAsync = eval(Jscex.compile("async", function () {  

        while (true) {  

            pointPositionsForShow.length = 0;  

            currentAngle += 0.1;  

            rotate(degToRad(currentAngle));  

            PositionsProjection();  

            for (var i = 0; i < pointPositionsForShow.length; i++) {  

                cxt.fillStyle = randomColor();  

                cxt.beginPath();  

                if (pointPositionsForShow[i].z > 0) cxt.globalAlpha = 1;  

                if (pointPositionsForShow[i].z < 0) cxt.globalAlpha = 0.1;  

                cxt.arc(centreOfCirclePosition.x + pointPositionsForShow[i].x, centreOfCirclePosition.x + pointPositionsForShow[i].y, distance / Math.abs(cameraPosition.z - pointPositionsForShow[i].z), 0, Math.PI * 2, true);  

                cxt.closePath();  

                cxt.fill();  

            }  

            $await(Jscex.Async.sleep(50));  

        }  

    }))  

到此,關于“HTML5怎么實現圓錐”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

同心县| 台山市| 永和县| 宜阳县| 无棣县| 芜湖市| 乌拉特后旗| 张掖市| 元氏县| 安龙县| 虎林市| 柳州市| 杨浦区| 云梦县| 洛南县| 五峰| 阜城县| 铜鼓县| 沙湾县| 西乌珠穆沁旗| 山丹县| 肥乡县| 太仆寺旗| 南安市| 福建省| 建始县| 虹口区| 罗山县| 启东市| 阳原县| 富宁县| 卫辉市| 抚远县| 噶尔县| 漳州市| 苗栗市| 神农架林区| 通榆县| 南平市| 岳阳市| 吉木萨尔县|