CF630O Arrow
题目描述
Petya 最近开始在 IT city 公司担任程序员,该公司开发电脑游戏。
除了实现游戏机制之外,为了制作一款游戏,还需要开发工具程序以便游戏设计师制作游戏关卡。Petya 的第一个任务是创建一个能够在屏幕上绘制不同箭头的工具。
该工具的用户可以在屏幕上选择一个点,指定一个向量(箭头方向),并调节若干参数来获得所需的图形效果。在该程序的第一个版本中,Petya 决定将箭头的参数限定如下:点的坐标为 $(px, py)$,一个非零向量的坐标为 $(vx, vy)$,并给定正数 $a, b, c, d$,且 $a > c$。
所绘制的箭头需满足以下属性。箭头由一个三角形和一个矩形组成。三角形为等腰三角形,底边长度为 $a$,高为 $b$ 并垂直于底边。矩形的边长分别为 $c$ 和 $d$。点 $(px, py)$ 位于三角形底边的中点处,也位于长度为 $c$ 的矩形边的中点处。三角形和矩形的交集面积为零。从点 $(px, py)$ 指向与底边相对的三角形顶点的方向与向量 $(vx, vy)$ 的方向一致。
请按逆时针顺序,从箭头尖端开始,输出箭头各顶点的坐标。

输入格式
输入仅一行,包括八个整数 $px, py, vx, vy$($-1000 \le px, py, vx, vy \le 1000, vx^2 + vy^2 > 0$)、$a, b, c, d$($1 \le a, b, c, d \le 1000, a > c$)。
输出格式
输出箭头顶点的坐标,逆时针顺序,从箭头尖端开始。每行输出一个点的两个坐标,先 $x$ 后 $y$。相对或绝对误差不超过 $10^{-9}$。
说明/提示
由 ChatGPT 5 翻译