python 横坐标旋转,python 横坐标旋转

数据旋转公式

x1=cos(angle)*x-sin(angle)*y;

y1=cos(angle)*y+sin(angle)*x;

从数学上来说,此公式可以用来计算某个点绕另外一点旋转一定角度后的坐标,例如:A(x,y)绕B(a,b)旋转β度后的位置为C(c,d),则x,y,a,b,β,c,d有如下关系式:

import matplotlib.pyplot as plt

import numpy as np

import math

a = [0,1,3,3,2,2]

b = [3,4,2,1]

c = [3,3,2,3]

a = np.array(a)

b = np.array(b)

c = np.array(c)

def rotate(angle,valuex,valuey):

rotatex = math.cos(angle)*valuex -math.sin(angle)*valuey

rotatey = math.cos(angle)*valuey + math.sin(angle)* valuex

rotatex = rotatex.tolist()

rotatey = rotatey.tolist()

xy = rotatex + rotatey

return xy

def getLen(x1,y1,x2,y2):

diff_x = (x1-x2)**2

diff_y = (y1-y2)**2

length = np.sqrt(diff_x+diff_y)

return length

lie = np.linspace(0,2,20) #画图时横纵坐标刻度,影响着它们的形状,可以设置一下刻度分布

for i in lie:

t = math.pi*i

a1 = rotate(t,a[0:3],a[3:6])

b1 = rotate(t,b[0:2],b[2:4])

c1 = rotate(t,c[0:2],c[2:4])

len1 = getLen(a[0],a[3],a[1],a[4])

len2 = getLen(a1[0],a1[3],a1[1],a1[4])

print(len1)

print(len2)

print("旋转后长度是否相等",len1==len2)

plt.plot(a[0:3],a[3:6],color="green")

plt.plot(b[0:2],b[2:4],color="green")

plt.plot(c[0:2],c[2:4],color="green")

plt.plot(a1[0:3],a1[3:6],color="red")

plt.plot(b1[0:2],b1[2:4],color="red")

plt.plot(c1[0:2],c1[2:4],color="red")

plt.xticks(np.arange(-5,5,0.5))

plt.yticks(np.arange(-5,5,0.5))

plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 数组区删除重复的,php – 从数组中删除重复的项目

我使用下面的代码行来遍历数据库中的一个表:$items_thread $connection -> fetch_all($sql);如果我打印出来的阵列:print_r($items_thread);我会得到这个:Array([0] > Array([RecipientID] > 3[RecipientScreenname] > Tom L[Re…

python计算器教程,用Python程序制作一个简单的计算器

用Python程序制作一个简单的计算器在此示例中,您将学习创建一个简单的计算器,该计算器可以根据用户的输入进行加,减,乘或除。要理解此示例,您应该了解以下Python编程主题:通过函数创建简单计算器示例# 程序…

oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...

在Oracle数据库中按用户名重建索引的方法如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的.它不仅可以提高查询性能, 还能增加索引表空间空闲空间大小.在ORACLE里大量删除记录后, 表和索引里占用的数据块空间并没有释放.重建索引可以…

ora-01113 oracle8i,ora-01113解决办法

今天在检查接口机的时候,发现速度奇慢,于是,就差了一下v$session表,可是很不幸,查询的速度慢的要命,原来的前几天备份的时候出现的问题,没办法,关闭后重其一次吧,可是关闭…

oracle更换rac节点,Oracle-rac 更改VIP地址—2节点的

1、主机名规划:--更改前:#Public Network - (eth0)ITPUB个人空间8Aw I"PbAv192.168.10.11 rac1G&n&uwk%m11386773192.168.10.12 rac2#Private Interconnect - (eth1)[V/{h4D(*f1L!J1138677310.10.10.11 rac1privH9RI(H/d.cP*UY1138677310.1…

Linux部署oracle11g,linux环境下部署Oracle11g

一、部署准备1、查看本地ssh服务Linux系统下安装启动ssh服务:1.检查是否装了SSH包rpm-qa |grep ssh2.没有安装SSH直接YUM安装yuminstall openssh-server3.检查SSH服务是否为开机启动chkconfig--list sshd4.设置开机启动SSH服务chkconfig--level 2345 sshd on5.重新启…

php yii把pdf转成图片,yii实现图片上传及缩略图生成的方法

这篇文章主要介绍了yii实现图片上传及缩略图生成的方法,详细分析了图片的上传及缩略图的生成原理与实现方法,是非常实用的技巧,需要的朋友可以参考下本文实例讲述了利用yii框架来实现图片上传功能并在上传成功之后自动生成缩略图的方法,分享给大家供大家参考。具体实…

linux下的安装命令行工具下载,linux系统程序安装(二)yum工具2-yum源及包下载

继续我们的yum工具应用之旅,yum工具之所以方便就是因为有方便的在线云库,实际工作中我们可能没办法链接互联网,或者我们想安装的程序原生源那么我们能不能用其他方式应用方便的yum源呢?一、使用光盘作为yum源1、将光盘挂载到/mnt目…

linux显卡内核修改,iTOP-4412开发板-驱动-linux显卡驱动的修改方法

本文档介绍迅为4412开发板的显卡分辨率修改方法。iTOP-4412 开发板支持 4.3 寸、7 寸和 9.7 寸等 lcd 显示屏。其中 4.3 寸屏是用的 cpu直接出来的 RGB 信号,7 寸屏和 9.7 寸屏是用的 LVDS 信号,硬件上使用了一个 RGB 转LVDS 的芯片实现的。我们来看下显…

linux-如何限制普通用户的磁盘使用空间-磁盘配额quota,Linux系统下如何进行磁盘配额Quota的设置...

Linux如何进行磁盘配额quota的设置通过quota进行磁盘配额,可以控制用户对磁盘空间和文件的控制,我们以一个实例作为说明,对2个用户user01、user02分别进行磁盘使用空间和创建文件的限制。首先,创建一个新的分区&#x…

linux一台机器如何安装两个mysql,在一台linux机器上启动两个mysql实例

环境:linux主机上已经yum安装了mysql,而且数据库正在运行。在不关闭/重启mysql的情况下,重新启动一个新的mysql实例,使用3307端口,实现一台机器上同时运行两个数据库实例。1、创建新的mysql实例数据存储目录&#xff1…

linux和windows启动,Linux和Windows双系统的启动

问题Linux和Windows双系统的启动解决方案在某些特殊情况下,服务器可能要安装双系统一个linux系统,一个windows系统这种情况下,安装顺序是,先装Windows系统,后装Linux这是因为,Linux的引导程序grub具备多系统…

体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB)...

Tiny Core Linux (TCL) 是一款极体积极小且高度可扩展的微型 Linux 发行版,它将一个 Linux 操作系统精简到仅有 10 多 MB 左右的大小,似乎小巧得有点让人叹为观止!要知道无论是常见的 Ubuntu、CentOS、Debian 的体积动辄就是几百MB甚至要上GB…

linux下缓存命中测试,Linux 性能优化实战(倪朋飞)---查看缓存命中情况

cachestat 提供了整个操作系统缓存的读写命中情况。cachetop 提供了每个进程的缓存命中情况。但是,cachetop 并不把直接 I/O 算进来。安装 cachestat、cachetop:$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD$ ech…

linux suid提权原理,Linux SUID、SGID、sticky提权

S UID SGID SOID 核心就在 “S” ,S就是允许本圈子 用户有r,w,x ;例如:1、chmod sg test.txt 只允许testex.txt所在的组 员可以执行r,w,x2、chmod us test.txt2 只允许test.txt2的属主 执行r,w,x温馨提示:对SUID只需要有个了解就行了&#xf…

linux新建samba账户,ubuntu上创建账户和samba用户

系统环境:Linux ubuntu152 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64x86_64 GNU/Linux系统用户登录创建linux账户:1. sudo adduser username --home /home/username执行该命令后需要两次输入账户密码,连续回车&…

linux xorg.0.log,Red Hat无法登录,Cannot open log file /var/log/Xorg.0.log

命令截面输入ROOT帐号无效,几秒后弹出报错页面I cannot start the X server (your graphical interface ) It is likely it is not setup correctlyWould you like to view the X server output diagrose the problem?然后按YES后跳出Fatal server error:Cannot o…

c程序语言习题解答对编程有帮助吗,给C语言编程初学者的10个学习建议,助你学习事半功倍,不要错过...

对于初学者应该如何学习C语言编程开发技术,纵观中国目前整体行业来说,互联网IT行业 成为了拔尖的行业,IT互联网程序开发成了靠自己能力可以多挣一点钱,所以各个行业都在转行,其实互联网不存在饱和,只不过大…

跟世界打个招呼c语言编程,(一)helloworld

Idea下用SBT搭建Spark Helloworld没用过IDEA工具,听说跟Eclipse差不多,sbt在Idea其实就等于maven在Eclipse.Spark运行在JVM中,所以要在Idea下运行spark,就先要安装JDK 1.8 然后加入S ...菜鸟学Struts2——HelloWorld写在前面 自从工作后就过上了只有一个月记忆的生活,太健忘,很…

求一份100行左右的C语言程序,求4个C语言程序 每个100行左右 大一水平的

2008-06-30 回答//链表问题//电话薄实现:可以输入,输出,插入,删除联系人信息.#include#include#includetypedef struct student{char address[20];char name[20];char mail[7];;char phone[10];struct student *next;}LNode;void creat_list( LNode **h ) //请输入联系人信息{L…