使用pyhon绘图比较两个手机屏幕大小(实例代码)

yipeiwu_com5年前Python基础

背景:准备给长辈买个手机,有关手机大小,网购平台基本只有手机尺寸和分辨率的文本数据,因而对手机屏幕大小没有直观感受,虽然网上有比较手机大小的网站(百度搜索),但是只有知名的手机才有数据,因而自己动手写了个python脚本,根据手机的尺寸及分辨率,利用tkinter绘图直观比较两个手机屏幕的大小。

目前遇到的问题是:tkinter绘图设置是左上角和右下角坐标,人的阅读习惯是左下角和右上角,还不知道解决。

直接丢代码,效果图在文末:

import tkinter,math
 #手机一参数设置:
first_phone = (7.2,2244,1080) #(尺寸,分辨长,分辨宽)
#手机二参数设置:
second_phone =(6.59,2340,1080) #(尺寸,分辨长,分辨宽)
def calc_phone(phone_info):#参数为手机信息(尺寸,分辨率长,分辨率宽)
  diagonal,res_l,res_w = phone_info
  #计算宽度
  w = math.sqrt(
    math.pow(diagonal, 2)*math.pow(res_w,2)/(math.pow(res_w,2)+math.pow(res_l,2))
    )
  #计算长度
  l = math.sqrt(math.pow(diagonal, 2)-math.pow(w,2))
  return l,w  
#创建窗口
window = tkinter.Tk()
#窗口标题
window.title(f'手机大小对比          蓝色({first_phone[0]}尺寸),黑色({second_phone[0]}尺寸)')
#创建画布
canvas = tkinter.Canvas (window,width=600,height=800,bg="white")
#绘制矩形a,b,c,d值为左上角和右下角的坐标),填充颜色:blue,边框颜色:blue
a = 100 
c,d = calc_phone(first_phone)
canvas.create_rectangle(a,a,a+100*d,a+100*c,outline='blue')#手机一
c,d = calc_phone(second_phone)
canvas.create_rectangle(a,a,a+100*d,a+100*c)#手机二
#包装画布
canvas.pack()
#删除指定图形
# canvas.delete("red")
#运行并显示窗口
window.mainloop()

效果图如下

总结

以上所述是小编给大家介绍的使用pyhon绘图比较两个手机屏幕大小,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

TensorFlow实现Batch Normalization

TensorFlow实现Batch Normalization

一、BN(Batch Normalization)算法 1. 对数据进行归一化处理的重要性 神经网络学习过程的本质就是学习数据分布,在训练数据与测试数据分布不同情况下,模型的泛化能力就大...

Python标准库之循环器(itertools)介绍

在循环对象和函数对象中,我们了解了循环器(iterator)的功能。循环器是对象的容器,包含有多个对象。通过调用循环器的next()方法 (__next__()方法,在Python 3....

Python获取昨天、今天、明天开始、结束时间戳的方法

如下所示: #!/usr/bin/python # coding=utf-8 # import time import datetime # 今天日期 today = datetim...

详解pyqt5 动画在QThread线程中无法运行问题

详解pyqt5 动画在QThread线程中无法运行问题

自己做了一个tcp工具,在学习动画的时候踩了坑,需求是根据上线变绿色,离线变灰色,如果连接断开了,则变为灰色 问题现象: 可以看到点击“连接”,“离线”的时候动画是正常的,但是当tcp...

python 哈希表实现简单python字典代码实例

这篇文章主要介绍了python 哈希表实现简单python字典代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 class...