trang chủ / bài tập / arrowfig

Vẽ mũi tên

Đề bài

Mô tả

Cho một điểm (px,py) trên mặt phẳng, một vector khác không (vx,vy) và bốn số dương a,b,c,d với a>c. Hãy vẽ một mũi tên gồm một tam giác và một hình chữ nhật với các tính chất sau:

  • Tam giác cân, có đáy độ dài a và chiều cao độ dài b vuông góc với đáy.
  • Hình chữ nhật có các cạnh độ dài cd.
  • Điểm (px,py) nằm chính giữa đáy tam giác và cũng nằm chính giữa cạnh có độ dài c của hình chữ nhật.
  • Phần chung của tam giác và hình chữ nhật có diện tích bằng 0.
  • Hướng từ (px,py) tới đỉnh của tam giác đối diện với đáy trùng với hướng của vector (vx,vy).

Hãy liệt kê toạ độ các đỉnh của mũi tên theo thứ tự ngược chiều kim đồng hồ, bắt đầu từ đỉnh nhọn của tam giác.

Dữ liệu vào

Một dòng chứa tám số nguyên px,py,vx,vy,a,b,c,d.

Dữ liệu ra

In ra 7 dòng, mỗi dòng chứa hai số thực là toạ độ x,y của một đỉnh của mũi tên theo thứ tự ngược chiều kim đồng hồ, bắt đầu từ đỉnh nhọn.

Sai số tuyệt đối hoặc tương đối cho phép là 106.

Ràng buộc

  • 1000px,py,vx,vy1000
  • vx2+vy2>0
  • 1a,b,c,d1000
  • a>c

Ví dụ

Input Output Giải thích
8 8 0 2 8 3 4 5 8.000000000000 11.000000000000
4.000000000000 8.000000000000
6.000000000000 8.000000000000
6.000000000000 3.000000000000
10.000000000000 3.000000000000
10.000000000000 8.000000000000
12.000000000000 8.000000000000
Mũi tên hướng lên trên (theo vector (0,2)). Đỉnh nhọn ở (8,11), tam giác có đáy từ (4,8) tới (12,8), hình chữ nhật kéo xuống dưới.
10 10 -7 0 5 8 2 11 2.000000000000 10.000000000000
10.000000000000 7.500000000000
10.000000000000 9.000000000000
21.000000000000 9.000000000000
21.000000000000 11.000000000000
10.000000000000 11.000000000000
10.000000000000 12.500000000000
Mũi tên hướng sang trái. Hình chữ nhật kéo dài về bên phải điểm gốc.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0