日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线段的平移和旋转

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线段的平移和旋转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//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

總結

以上是生活随笔為你收集整理的线段的平移和旋转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。