剛體的平面運動

来源:http://www.cnblogs.com/520xiuge/archive/2016/01/12/5125440.html
-Advertisement-
Play Games

利用矩陣乘法來實現剛體的平面運動,並繪製剛體運動前後的圖形用平面坐標系中的一個閉合圖形來描述剛體,用一個矩陣X來描述它。X的一列表示剛體一個頂點的坐標。為了使圖形閉合,X的最後一列和第一列相同;為了實現剛體的平移運算,給矩陣X添加元素值為1的一行,使矩陣X的形狀為3Xn若有矩陣:可以證明:矩陣Y1是...


利用矩陣乘法來實現剛體的平面運動,並繪製剛體運動前後的圖形

用平面坐標系中的一個閉合圖形來描述剛體,用一個矩陣X來描述它。X的一列表示剛體一個頂點的坐標。為了使圖形閉合,X的最後一列和第一列相同;

為了實現剛體的平移運算,給矩陣X添加元素值為1的一行,使矩陣X的形狀為3Xn

若有矩陣:

可以證明:矩陣Y1是剛體沿x軸正方向平移c1、沿y軸正方向平移c2後的結果;矩陣Y2是剛體X以坐標原點為中心逆時針轉動t弧度的結果

例:用下列數據表示大寫字母A,對圖形A進行以下平面運動,並繪製移動前後的圖形

x  0 4 6 10 8 5 3.5 6.1 6.5 3.2 2 0

y  0 14 14 0 0 11 6 6 4.5 4.5 0 0

(1)向上移動15,向左移動30

(2)逆時針轉動∏/3

(3)先逆時針轉動∏3/4,然後向上移動30,向右移動20

clear all
x = [0 4 6 10 8 5 3.5 6.1 6.5 3.2 2 0];
y = [0 14 14 0 0 11 6 6 4.5 4.5 0 0];
A = [x;y;ones(1,length(x))];
axis equal%縱、橫坐標軸採用等長刻度
plot(x,y)
hold on %保持當前圖形視窗
%向上移動15
M = [1 0 0;0 1 15;0 0 1];%一行3列設為0,二行3列設為15
Y1 = M*A;
%然後,向左移動30
M = [1 0 -30;0 1 0;0 0 1];
Y1 = M*Y1;
fill(Y1(1,:),Y1(2,:),'red')
%逆時針轉動pi/3
M = [cos(pi/3) -sin(pi/3) 0;sin(pi/3) cos(pi/3) 0;0 0 1];
Y1 = M*A;
fill(Y1(1,:),Y1(2,:),'blue')
%先逆時針轉動pi*3/4,然後向上移動30,向右移動20
M = [cos(3*pi/4) -sin(3*pi/4) 0;sin(3*pi/4) cos(3*pi/4) 0;0 0 1];
Y1 = M*A;
M = [1 0 0;0 1 30;0 0 1];%一行3列設為0,二行3列設為30
Y1 = M*Y1;
M = [1 0 20;0 1 0;0 0 1];
Y1 = M*Y1;
fill(Y1(1,:),Y1(2,:),'green')
grid on %添加網格線
hold off

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在日常開發的過程中,難免會用到form表單,我們需要獲取表單的數據保存到資料庫,或者拿到後臺的一串json數據,要將數據綁定到form表單上,這裡我寫了一個基於jquery的,formHelp插件,使用起來也很簡單:獲取表單的數據:$("#formid").serializeJson();綁定數據到...
  • 微信掃碼顯示特效:下麵是實際效果:(可以自己移動滑鼠,嘗試效果)(由於篇幅長度,沒有加相容性首碼,演示環境為谷歌瀏覽器。)現在就一個一個效果單獨演示:演示demo的HTML內容為:魔芋CSS:div { width:200px; height:200px; background: red; marg...
  • 之前提到了JS中比較簡單的設計模式,在各種設計模式中被最常使用的工具之一就是原型鏈的繼承。作為OOP的特質之一——繼承,今天主要談談JS中比較簡單的繼承方法。 最基礎的原型鏈繼承在這裡就不覆述了,主要講一下其他的繼承模式。1.借用構造函數繼承function Father (name) {...
  • var EventEmitter = require('events').EventEmitter;var emitter = new EventEmitter();console.log(emitter.getMaxListeners());//設置可監聽事件的最大個數emitter.setMax...
  • 效果:http://hovertree.com/texiao/html5/canvas/1/代碼: 1 2 3 4 15 測試fillStyle - 何問起16 17 18 19 20 21 22 何問起23 24 更多:http://www.cnblogs.com/roucheng/p...
  • 在一個頁面放2個懸浮框,懸浮框隨頁面的上下滾動有上下波動的效果,最終固定在同一位置體驗效果:http://hovertree.com/texiao/jsstudy/1/代碼如下:JavScript頁面懸浮框- 何問起何問起 特效原文效果在一個頁面放2個懸浮框,懸浮框隨頁面的上下滾動有上下波動的效果,...
  • 效果體驗:http://hovertree.com/texiao/jsstudy/2/實現思路 1 滑鼠移入標題(這裡是標簽) 創建一個div,div的內容為滑鼠位置的文本 將創建好的div加到文檔中 為提示層設置位置 2 滑鼠移出標題 移除div 3 當滑鼠在標題內移...
  • jQuery升級踩坑大全背景jQuery想必各個web工程師都再熟悉不過了,不過現如今很多網站還採用了很古老的jQuery版本。其實如果早期版本使用不當,可能會有DOMXSS漏洞,非常建議升級到jQuery 1.9.x或以上版本。前段時間我就主導了這件事情,把公司里我們組負責的項目jQuery版本從...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...