pyqt 直线随鼠标移动_怎样利用Illustrator钢笔工具绘制直线、曲线及多边形?

今天的AI基础教程,我们继续来讲解Illustrator钢笔工具组的相关知识。今天,我们要讲的是如何利用钢笔工具绘制直线、曲线以及多边形。

ea7e178de55878f0a809e8670fe5198a.png

1、使用钢笔工具绘制直线

我们知道,两点确定一条直线。因此,我们在画直线的时候,实际上只需要确定直线的两个端点就可以了。

我们选择钢笔工具(快捷键“P”),在画板上单击即可创建一个锚点。移动鼠标至直线的末尾,再次单击鼠标左键,就画出了一条直线。我们按Esc键退出钢笔绘图模式即可。

42414e18b650ef077e20f63fc1df83aa.png

如果我们在绘制直线的时候按住Shift键,就可以绘制水平、垂直或者斜45度的直线了。


2、使用钢笔工具绘制曲线

我们选择钢笔工具(快捷键“P”),在画板上单击即可创建一个锚点。即曲线的起点。然后,将鼠标放在第二个位置,单击并拖拽出两条手柄。手柄的方向就是曲线前进的方向。

6a9abafd66452b64a6d6fcc6105b6149.png

以此类推,我们添加其他锚点,并调节好手柄的长度和方向。

ff59c0639709332a14276bf261f96bb1.png

3、使用钢笔工具绘制多边形

多边形是有三条或更多条边组成的封闭图形,它的每一条边都是直线。因此,我们只要掌握了直线的绘制方法,就可以绘制多边形了。

0475c2fe24c0201808bef4f7e3c12b25.png

以上我们详细介绍了利用Illustrator钢笔工具绘制直线、曲线和多边形的方法,希望能够对你有所帮助。

Illustrator基础教程持续更新中,如果你想了解更多和设计相关的内容,欢迎关注我的头条号!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 PyQt 编写的随鼠标移动的放大镜示例: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtGui import QPixmap, QCursor, QPainter, QPen, QBrush from PyQt5.QtCore import Qt, QPoint class MagnifyingGlass(QWidget): def __init__(self): super().__init__() self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool) self.setAttribute(Qt.WA_TranslucentBackground) self.label = QLabel(self) self.label.setScaledContents(True) self.pix = QPixmap('image.jpg') self.label.setPixmap(self.pix) self.magnify = 2.0 self.resize(self.pix.width() // self.magnify, self.pix.height() // self.magnify) self.setMouseTracking(True) def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.setPen(QPen(Qt.red, 1)) painter.setBrush(QBrush(Qt.red, Qt.SolidPattern)) painter.drawEllipse(self.width() // 2 - 5, self.height() // 2 - 5, 10, 10) def mouseMoveEvent(self, event): cursor_pos = QCursor.pos() x = cursor_pos.x() - self.width() // 2 y = cursor_pos.y() - self.height() // 2 if x < 0: x = 0 elif x > self.pix.width() - self.width() // self.magnify: x = self.pix.width() - self.width() // self.magnify if y < 0: y = 0 elif y > self.pix.height() - self.height() // self.magnify: y = self.pix.height() - self.height() // self.magnify self.label.setPixmap(self.pix.copy(x * self.magnify, y * self.magnify, self.width() * self.magnify, self.height() * self.magnify)) self.move(cursor_pos.x() - self.width() // 2, cursor_pos.y() - self.height() // 2) def resizeEvent(self, event): self.label.resize(self.size()) if __name__ == '__main__': app = QApplication(sys.argv) magnify = MagnifyingGlass() magnify.show() sys.exit(app.exec_()) ``` 该示例,我们使用了 `QLabel` 来显示要放大的图片,使用 `QPainter` 绘制了放大镜的圆形边框,并且使用 `setMouseTracking(True)` 方法来跟踪鼠标移动。当鼠标移动时,我们获取到鼠标的位置 `cursor_pos`,然后根据放大倍数 `magnify` 计算出要显示的区域,并将其设置为 `QLabel` 的 pixmap。最后,使用 `move()` 方法将放大镜移动鼠标所在的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值