조회 수 8 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
俄罗斯色情 - https://www.blackcurve.com/casino-non-gamstop/reviews/li-bet/;

俄罗斯方块旋转算法 Baeldung中文网


1. Overview


In this tutorial, we’ll discuss the algorithm behind rotating Tetris pieces. We’ll start by discussing the equation for rotating a shape in general. Then, we’ll define a data structure that can be used to manipulate the Tetris pieces’ rotations.

Christmas of the Blessed Virgin Cathedral aerial view around residential city block. Religious and travel attractions and destinations

Finally, we’ll present the algorithm to rotate a Tetris piece and finish with a quick conclusion.


2. Rotating a Shape


First, let’s define the problem from a logical and mathematical point of view. Then, we can extract the general equations to rotate a point in the cartesian coordinate system.


The Tetris game consists of the following 7 main shapes:


Drawing4-1-1024x257.png


Each shape can be rotated and then put on top of others to form straight lines. The allowed rotations for each piece are 90, 180, 270, and 360 degrees, which is the original orientation of the shape. This tutorial discusses the general algorithm to rotate any of the mentioned pieces.


The algorithm should rotate a given Tetris piece by 90 degrees. Calling the algorithm multiple times will generate all the possible rotations for the given piece. As a start, let’s discuss the general rotation equations and then see how to apply them in the intended algorithm.


Since each Tetris piece is a polygon, rotating each of the polygon’s corners alone should give us the resulting rotated piece. Therefore, in this section, we’ll discuss the equations to rotate a point around the origin of the cartesian coordinate axis.


Let’s take a look at the following figure:


Drawing2-1024x825.png


In the coordinates above, we have point quicklatex.com-b6856ac0ab0200ef2ba6287c8 forming an angle quicklatex.com-5f44d9bbc8046069be4aa2989 with the x-axis. For simplicity, we’ll consider the point as a vector with magnitude quicklatex.com-01bcf7e9e043561da78fecf71. Using this representation, we can define equations for quicklatex.com-7e5fbfa0bbbd9f3051cd156a0 and quicklatex.com-38461fc041e953482219abf5d as follows:


    quicklatex.com-5db8fd594df578c9c768b6d2c


    quicklatex.com-4a878e5b1659c780ebc19f1ce


After defining the equations to represent a point in the coordinate axis, let’s rotate the point quicklatex.com-b6856ac0ab0200ef2ba6287c8 to new coordinates quicklatex.com-59f11e327864bfd0dfb602e43. The rotation is shown in the following shape:


Drawing1-1024x825.png


The original point was rotated by quicklatex.com-0f39b655b53423e80558c68b8 degrees to the new coordinates quicklatex.com-59f11e327864bfd0dfb602e43 having a new magnitude of quicklatex.com-ebee390253a45105959c2bc4c. We can see that the new point forms an angle quicklatex.com-b7847fbf11b2aa11799e33624 with the x-axis. Likewise, we can define equations for quicklatex.com-59f11e327864bfd0dfb602e43 as follows:


    quicklatex.com-17e19de9822aa541042581683


    quicklatex.com-f419abceb484246c1d72f1517


To find the rotation equations, we need to find quicklatex.com-7e9240d4beef863c91299bf5e and quicklatex.com-64a0a8e8f9cf320aa10cf6e5c as functions to the original coordinates quicklatex.com-2234c4dc1f3099131d36c7e7f and quicklatex.com-4149db711c9e681cd65bbdb52. To do this, we’ll use the following known equations of quicklatex.com-f9be6c4b03749d6dff440419d and quicklatex.com-d3762ae196ab67f79666c057e for the sum of two angles:


    quicklatex.com-89a753a6da38fbbd2305d29c3


    quicklatex.com-c2fa76ce228dfda73d160505d


Additionally, rotating a vector doesn’t change its magnitude. Therefore, the following equation applies:


    quicklatex.com-9ca1d85754543ceb277253df8


Now, we can use the above equations to rewrite our formula for quicklatex.com-b4a147f08046ded14d94e9286 and quicklatex.com-e3860fc68d5fca7cb5a4fdd0e:


    quicklatex.com-46b968e7c6df26ccf18976386


    quicklatex.com-656347a9fb7b527d62491a62a


We can simplify them using the equations we defined in section 2.2 to the following ones:


    quicklatex.com-4d7ebddbf7165f776e7f1f533


    quicklatex.com-78a9edd83e9a4718937dbfb61


Now, we can use these equations to create an algorithm that can rotate a Tetris piece. Let’s start by defining the data structure to store the pieces.


3. Structure Definition


We need to define the structure that will store the Tetris pieces. To do that, we can define each shape as a set of points which are the corners of the shape. In addition, the structure must support rotating the Tetris pieces.


It’s worth noting that Tetris pieces are rotated around their origin. Therefore, we need to define the center point for each shape as well. Take a look at the following figure that shows the different rotations of each shape along with its origin:


Drawing3-1-1024x666.png


Therefore, for each shape, we’ll have an array quicklatex.com-639d86127b094ce8bbe81128a containing the shape’s corner points and a variable quicklatex.com-d450e5d51eb316725457ede5e containing the shape’s origin. Now that we defined the structure, we can move into implementing the rotation algorithm.


4. Algorithm


To implement a rotation algorithm, we only need one function called quicklatex.com-8f1b273ba5e45c0a34affba15, which rotates the given shape by the given angle. Note that the piece is not initially located at the coordinated axis’s center. Therefore, the algorithm must shift the shape to the center of the coordinate axis, perform the rotations, and then shift the point back.


Let’s take a look at the algorithm:


The function takes the array of points, the origin of the shape, and the rotation angle quicklatex.com-349fdc9f5f41a6ecbf5e500a9 as input. We start by defining quicklatex.com-2795d6cdf89a6089128d4299f, which will hold the resulting rotated points. Note that the origin stays the same after the rotation, so we don’t need to return it.


Next, we iterate over all the points of the shape. We need to shift each point as if the shape’s origin is moved to the centre of the coordinate axis. If the origin is moved to the centre, then it shifts to point quicklatex.com-e6f462232b138f5ab691a1230. At this time, the point will also shift with the same amount. Therefore, we shift the point by quicklatex.com-0ac9845abea641290db727c47. As a result, we define quicklatex.com-e6e1c3611728e9db0e52bb648 and quicklatex.com-2b1ce6fe7664ef728c0428024, which are the shifted coordinates.


Then, we perform the rotation by defining quicklatex.com-606a5fa3feb8ab19bd3c2da65 and quicklatex.com-4e8d5da324a650dffbf976bdf which are the coordinates for the rotated point, by applying the equations from section 2. After that, we shift the new points quicklatex.com-606a5fa3feb8ab19bd3c2da65 and quicklatex.com-4e8d5da324a650dffbf976bdf back away from the centre of the coordinate axis. Finally, we add the new points to the list of rotated points we created.


In the end, we return the resulting quicklatex.com-2795d6cdf89a6089128d4299f as the new shape corder points after performing the rotation.


5. Conclusion


In this article, we discussed the algorithm for rotating Tetris pieces. We started by discussing the rotation problem in general and then moved to define the structure that stores the Tetris pieces and the algorithm for rotating them.


List of Articles
번호 제목 조회 수
4809 Take Exception Failing Biotic Community Forum 10
4808 Maybe. By sporting "biometric smartwear," you'll be able to depend on the embedded sensors in your shirt to know whether you have met your health targets. Can I bring my guitar or a unique prop to carry? They could use it to punctuate the t 11
4807 Best Porno Sites & Exempt Porno Tubes Inclination Of 2025! 9
4806 Лучшие порносайты для женщин в 2025 году 8
4805 beach Towels Back Within The 1980s, The Chic Souvenir To Carry Again For Somebody You Really Didn't Wish To Spend A Ton Of Money On Was A T-shirt That Said, "My Grandparents Went To Hawaii And All I Acquired Was This Lousy T-shirt." But If 11
4804 LivePorn TV бесплатные живые порно-камеры и секс-чат 4
4803 Nobi Nutrition, Ultimate Male Enhancement, 60 Capsules отзывы, наставление по применению, укупить по низкой цене дешевле чем в аптеке с доставкой по Москве и России интернет-магазин ZaVitaminom ru 4
4802 Grammar When To Usance "most" Or "the Most" Side Voice Communication & Utilisation Push-down Stack Exchange 10
4801 PornHits & 157+ 免费色情视频网站 喜欢 Pornhits com 3
4800 給你的 Chrome、Edge 推薦 9 個好用的瀏覽器擴展 25
4799 【全网最全】59 个免费、免版权视频素材下载网站分享 Eagle 博客 25
4798 anyofai chatgpt-plus-hezu: 最新ChatGPT Plus合租攻略:国内最靠谱的ChatGPT Plus拼车平台推荐提供原生ChatGPT Plus独立帐号!支持使用GPT-5、GPT-4o、Grok-4和Gemini-2 5 Pro等AI大模型,每月仅需27元! 21
4797 席維斯 史特龍 26
4796 Envision 2021专业版软件安装教程,如何安装project软件-百度经验 53
4795 Initial Login 62
4794 Food And Drug Administration Warns Consumers Who Leverage Valium Online Of Possibly Unplayful Counterfeiting Issue 92
4793 Woodland Ballpark Zoological garden Ignore Entrance fee Tickets Seattle CityPASS® Attraction 87
4792 Drear Disperse Go After Lights WHY? When Did This Depart? The H A.M.B. 51
4791 Best Testosterone Lifter Skilful Recommendations In 2025 14
4790 Amazon Com: Testosterone Booster Addendum Manly Enhancing Carrying Out Pills For Work Force Immobile Acting Stock Flow, Size Enlargement, Enhanced Drive, Vigor, Strength, Endurance, Muscle Increase 90 Capsules : Health & Household 22
Board Pagination Prev 1 ... 652 653 654 655 656 657 658 659 660 661 ... 897 Next
/ 897