python - Python PIL - 绘图线无法按预期工作
问题描述
我想在 640 x 640 图像上画一条直线。有了直线坐标 (x1,y1) 的起点,以像素为单位的直线长度“长度”和角度“角度”,我需要计算直线坐标的终点 (x2,y2)。
为此,我编写了函数 calc_x2y2。对于屏幕右侧的 0(零)角绘制直线,它按预期工作,但不适用于 90 度,它应该是直线,而更靠左看起来像 110 度左右(下图)。我究竟做错了什么?
import math
from PIL import Image, ImageDraw
def calc_x2y2(length, angle, x1,y1):
x2 = x1 + math.cos(angle)*length
y2 = y1 + math.sin(angle)*length
return (x2,y2)
w, h = 640, 640
x1,y1 = w/2, h/2
shape = [(x1,y1), calc_x2y2(300,90,x1,y1)]
# creating new Image object
img = Image.new("RGB", (w, h),(225,225,225))
# create line on the image
img1 = ImageDraw.Draw(img)
img1.line(shape, fill="#401eba", width=5)
img.show()
解决方案
推荐阅读
- opengl - 有没有使用 glDrawArrays() 绘制多个不同大小的点的无着色方法?
- php - Illuminate\Routing\Route 类的对象无法转换为字符串
- php - 连接问题:SSL + WebSocket(socketo.me) + Nginx
- node.js - REST 调用适用于 axios,但不适用于 Angular 5 项目中的 HttpClient
- ara - 无法启动 ara
- mysql - 没有周末的日期倒退
- excel - 在 Mac 上旁加载 Excel 加载项
- asp.net - 文件夹的 IIS 8 重写规则
- grpc - 使用 mTLS 进行 GKE gRPC 入口运行状况检查
- javascript - 悬停文本时更改图像