線段的平移和旋轉

//github不會用,試了很久不知道怎么上傳代碼

#include <iostream>
using namespace std;
#include <stdlib.h>
#include <Eigen/Dense>
#include <math.h>
using namespace std;
using Eigen::MatrixXd;
int main()
{
int option;
struct point {
double px;
double py;
};
struct point p1;
struct point p2;
cout<<"請輸入線段的起點"<<endl;
cin>>p1.px;
cin>>p1.py;
cout<<"請輸入線段的終點"<<endl;
cin>>p2.px;
cin>>p2.py;
cout<<"請輸入線段的操作"<<endl<<"move:0"<<endl<<"rotation:1"<<endl;
cin>>option;
switch(option)
{
case 0:{
double transp[2];

cout<<"請輸入平移向量"<<endl;
cin>>transp[0];
cin>>transp[1];
p1.px+=transp[0];
p1.py+=transp[1];
p2.px+=transp[0];
p2.py+=transp[1];
cout<<"平移的結果"<<endl;
cout<<"("<<p1.px<<","<<p1.py<<")"<<"("<<p2.px<<","<<p2.py<<")"<<endl;
break;
}

case 1:{
MatrixXd m(2,2);
double alfa;
cout<<"請輸入旋轉角度(0~360)"<<endl;
cin>>alfa;
double pi=3.141592654;
alfa=alfa/180*pi;
m(0,0)=cos(alfa);
m(0,1)=sin(alfa);
m(1,0)=-sin(alfa);
m(1,1)=cos(alfa);
double temp1=p1.px*m(0,0)+p1.py*m(1,0);
double temp2=p1.px*m(0,1)+p1.py*m(1,1);
double temp3=p2.px*m(0,0)+p2.py*m(1,0);
double temp4=p2.px*m(0,1)+p2.py*m(1,1);
p1.px=temp1;
p1.py=temp2;
p2.px=temp3;
p2.px=temp4;
cout<<"旋轉的結果"<<endl;
cout<<"("<<p1.px<<","<<p1.py<<")"<<"("<<p2.px<<","<<p2.py<<")"<<endl;
}
}
return 0;
}

?

轉載于:https://www.cnblogs.com/jessony/p/5015267.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272675.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

我不問+你不說

閱讀原文很多事我不問你不說這就是距離我問了你不說這就是隔閡我問了你說了這就是尊重你想說我想問這就是默契我不問你說了這就是信任很多事情你看到的聽到的未必是你想象的那樣人生在世多給別人機會解釋多些向別人解釋的耐心人生會少很多遺憾不問、不說、不解釋這不是酷或有個…

怎么安裝redhat linux操作系統,紅帽RedHat Linux5系統安裝指南

介紹如何安裝linux操作系統&#xff0c;以目前市場主流的操作系統為例子進行介紹。1、放入安裝dvd光盤&#xff0c;然后啟動服務器&#xff0c;可得如下畫面&#xff1a;2、按enter鍵&#xff0c;進入如下畫面3、選擇skip&#xff0c;按enter進入&#xff0c;下面畫面&#xff…

Net中的Request和Response對象的理解

Request 和 Response 對象起到了服務器與客戶機之間的信息傳遞作用。Request 對象用于接收客戶端瀏覽器提交的數據&#xff0c;而Response 對象的功能則是將服務器端的數據發送到客戶端瀏覽器。一、Request對象的五個集合&#xff1a;QueryString&#xff1a;用以獲取客戶端附在…

研華工控機u盤啟動安裝linux系統,研華工控機怎么設置u盤啟動

本文主要介紹研華IPC如何設置u盤啟動研華IPC-610 IPC隨XP版一起安裝。有時安裝控制軟件需要在不滿意時卸載。卸載未完成&#xff0c;這使得安裝無法進行&#xff0c;因此您需要將系統恢復到相對純粹的時間。通常&#xff0c;USB磁盤啟動盤的安裝系統首先備份初始純XP作為備份&a…

UVA - 11732 strcmp() Anyone?左兄弟右兒子trie

input n 2<n<4000 s1 s2 ... sn 1<len(si)<1000 output 輸出用strcmp()兩兩比較si,sj(i!j)要比較的次數&#xff0c;結果在long long范圍內&#xff08;相同字符比較兩次&#xff0c;不相同字符比較一次&#xff0c;包括\0&#xff09; 做法&#xff1a;由于字符集…

防止SQL注入式攻擊的筆記

SQL注入式攻擊是指利用設計上的漏洞攻擊系統。如果動態生成SQL語句時沒有對用戶輸入的數據進行過濾&#xff0c;便會使SQL注入式攻擊得逞。例如用下面的SQL語句判斷用戶名和密碼&#xff1a;txtsql"select * from user_info where userid"&txtuserid &"…

linux輸入一個用戶看是否在工作,linux下的用戶管理詳解

linux下的用戶管理詳解useradd 命令詳解添加用戶想要對linux下面的帳號了解的話首先必須要了解的4個配置文件[rootlocalhost /]# cat /etc/passwd首先我們需要了解的是用戶帳號的配置信息/etc/passwd里面的內容每個字段都以:分割&#xff0c;下面我們詳細的看看每個字段的意思r…

Java命令學習系列(零)——常見命令及Java Dump介紹

Java命令學習系列&#xff08;零&#xff09;——常見命令及Java Dump介紹 一、常用命令&#xff1a; 在JDK的bin目彔下,包含了java命令及其他實用工具。 ? jps:查看本機的Java中進程信息。 ? jstack:打印線程的棧信息,制作線程Dump。 ? jmap:打印內存映射,制作堆Dump。 ? …

優秀程序員的十個習慣

在這個世界上&#xff0c;有數百萬的人熱衷于軟件開發&#xff0c;他們有很多名字&#xff0c;如&#xff1a;軟件工程師&#xff08;Software Engineer&#xff09;&#xff0c;程序員&#xff08;Programmer&#xff09;&#xff0c;編碼人&#xff08;Coder&#xff09;&…

linux下jmap 內存命令,Linux下jmap命令查看內存使用

Linux下jmap命令查看內存使用jmap -heap 1234(1234為進程號)jmap是JDK自帶的一個工具&#xff0c;非常小巧方便&#xff0c;其支持參數如下&#xff1a;-heap打印heap空間的概要&#xff0c;這里可以粗略的檢驗heap空間的使用情況。例&#xff1a;jmap -heap 12345輸出&#xf…

BZOJ3144: [Hnoi2013]切糕

題目&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id3144 把每一條z軸都拿出來&#xff0c;s->(x,y,1),cf[x][y][1];(x,y,k)->(x,y,k1),cf[x][y][k];(x,y,r)->t,cinf 然后對于四聯通的點&#xff0c;(x,y,z)->(x,y’,z-d) 似乎這叫經典的最小割模型…

如何通俗地解釋 C、C++、C#、Java、JavaScript、HTML、Python的用處

世界上本來沒有計算機&#xff0c;工程師創造了它。為了讓告訴計算機需要做什么事情&#xff0c;工程師發明了程序設計語言。簡單粗暴的編程&#xff1a;C語言&#xff1a;用來學編程&#xff1b;C語言&#xff1a;用來使勁兒學編程&#xff1b;C#&#xff1a;用來在windows操作…

安卓linux交叉編譯,Linux Ubuntu下用Android NDK 生成獨立交叉編譯鏈

本文主要介紹使用Android NDK生成獨立交叉編譯鏈&#xff0c;然后使用獨立交叉編譯鏈編譯Android程序下載NDK下載與自己操作系統相吻合的版本 下載地址解壓到安裝目錄(如~/myndk):tar -zxvf android-ndk-r14b-linux-x86_64將NDK的根目錄生成一個環境變量打開~/.bashrcw文件&…

數據結構——各排序算法的比較

1.從時間復雜度比較   從平均時間復雜度來考慮&#xff0c;直接插入排序、冒泡排序、直接選擇排序是三種簡單的排序方法&#xff0c;時間復雜度都為O(n2)&#xff0c;而快速排序、堆排序、二路歸并排序的時間復雜度都為O(nlog2n)&#xff0c;希爾排序的復雜度介于這兩者之間。…

將c程序移植到linux,各位大俠:我把原來在linux運行的c程序移植到HPUNIX上出現了錯誤...

各位大俠&#xff1a;我把原來在linux運行的c程序移植到HPUNIX上出現了錯誤(2012-04-11 00:43:47)標簽&#xff1a;linuxc程序雜談各位大俠&#xff1a;我把原來在linux運行的c程序移植到HP_UNIX上出現了錯誤makefileCC aCC -AA W829 DD64 DAportable-I/ods/app/oracle/produc…

數據庫學習建議之提高數據庫速度的十條建議

很多網站的重要信息都是保存在數據庫中的&#xff0c;用戶通過提交訪問數據庫來獲取用戶信息。如果數據庫速度非常的快&#xff0c;有助于節省服務器的資源&#xff0c;在這篇文章中&#xff0c;我收集了十個優化數據庫速度的技巧。0. 小心設計數據庫第一個技巧也許看來理所當然…

Java中數據類型的取值范圍

整數數據類型的取值范圍 我們都知道計算機的底層是二進制&#xff0c;也知道不同的整數類型存儲值的范圍不同&#xff0c;可這些數值在計算機底層是怎樣存儲的呢&#xff1f;數值范圍又是怎么計算出來的呢&#xff1f; 下面以java來進行舉例&#xff1a; byte 1個字節 (8bit…

linux的cpu信息怎么理解,理解Linux下的CPU信息:lscpu cpuinfo

通過lscpu命令&#xff0c;可以看到CPU的一些基本信息。如下所示&#xff0c;可以很清楚的看到這臺服務器使用兩個物理socket&#xff0c;每個socket上有6個core&#xff0c;每個core上有兩個線程(超線程)&#xff0c;所以一共有2 * 6 * 2 24個邏輯CPU。Architecture: x86_64C…

如何降低SQL語句復雜度

SQL語句復雜度的優化就是在結果正確的前提下&#xff0c;將復雜、難以維護的SQL語句拆分成獨立、易懂的SQL片段&#xff0c;當然也要充份利用索引&#xff0c;減少表描的I/O次數&#xff0c;盡量避免表搜索的發生。下面介紹降低SQL語句復雜度的幾個建議1、動態查詢語句一些應用…

提高程序員工作效率的11個技巧

“吃苦耐勞”真的是優良品質嗎&#xff0c;與你怎么做相比&#xff0c;老板們應該更關心你做了什么、達到的效果。所以&#xff0c;效率&#xff0c;還是效率&#xff0c;希望這些實用小技巧對大家有所幫助。1、兩分鐘法則如果一件事可以在兩分鐘內完成&#xff0c;比如回復郵件…