news 2026/5/28 9:18:01

UVA13045 Drawing Polygon 题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVA13045 Drawing Polygon 题解

UVA13045 Drawing Polygon

题目描述

Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=866&page=show_problem&problem=4943

PDF

输入格式

输出格式

输入输出样例 #1

输入 #1

2 4 5 0 0 5 5 0 0

输出 #1

Case #1: 0.000000 0.000000 5.000000 0.000000 5.000000 5.000000 0.000000 5.000000 Case #2: 0.000000 0.000000 5.000000 0.000000 6.545085 4.755283 2.500000 7.694209 -1.545085 4.755283

Solution

题目说明

已知一个正n nn边形的边长l ll,以及这个多边形左下角顶点的坐标( x , y ) (x,y)(x,y),求这个多边形每个顶点的坐标。

分析

本题属于典型的模拟,从题目描述看,这个过程和 Python 的 turtle 非常类似。

一个正n nn边形的性质包括:

  1. 外角和是2 π 2\pi2π,每个外角(也就是绘制相邻两条边时需要转过的角度)皆为2 π n \dfrac{2\pi}{n}n2π
  2. 所有的边长相等。

基于上述两点,绘制多边形时(也就是模拟一只 turtle),自始至终不断更新当前的朝向(角度θ \thetaθ)以及坐标位置( x , y ) (x,y)(x,y)。当边长为l ll,方向的角度为θ \thetaθ时,绘制这条边时…

  • x xx的值增加l cos ⁡ θ l\cos\thetalcosθ
  • y yy的值增加l sin ⁡ θ l\sin\thetalsinθ

得到的值即为下一个顶点的坐标。到达下一个顶点后,θ \thetaθ角度增加2 π n \dfrac{2\pi}{n}n2π,重复这一过程直到绘制完全部顶点即可。由于第一条边和x xx轴平行,因此θ \thetaθ角度初始化为零。

需要说明的是:

  1. 相邻两组数据之间要输出一个空行(这一点在 PDF 题面没有体现);
  2. 浮点数有正负0 00之分,不能输出-0.000000
  3. Case 的字母 c 要大写。

完整代码

#include<iostream>#include<cmath>usingnamespacestd;constlongdoublepi=3.1415926535897932385l;//(x,y)是起点坐标, n是多边形的边数, l是多边形的边长, t是数据组数longdoublen,l,x,y;intt;voidsolve(){staticintk=1;cin>>n>>l>>x>>y;printf("Case #%d:\n",k);longdoublerotationAngle=2.0*pi/n;longdoubledirection=0;for(inti=1;i<=n;i+=1){if(fabsl(x)<=1e-9)x=0.;if(fabsl(y)<=1e-9)y=0.;printf("%.6Lf %.6Lf\n",x,y);x+=l*cosl(direction);y+=l*sinl(direction);direction+=rotationAngle;}cout<<endl;k+=1;}intmain(){cin>>t;for(inti=1;i<=t;i+=1)solve();}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 9:17:40

Hi3516CV610 sdk 源码学习

参考文章&#xff1a;海思 3403 MPP 全链路解析: VI、VPSS、VENC 的运行逻辑与实践_vi 4k switch to fhd -> vpss -> venc && vo-CSDN博客 一、Hi3516CV610 sdk目录层级&#xff1a; sudo apt-get install tree # 预装tree命令。 tree -L 2 -d # -L 2:只显示目录…

作者头像 李华
网站建设 2026/5/28 9:17:00

利用URL参数与AI技能构建零集成Web应用自动化方案

1. 项目概述&#xff1a;从用户痛点出发&#xff0c;构建AI驱动的“一键式”解决方案作为一名独立开发者&#xff0c;我运营着一个免费的在线谜题生成网站 JigsawMake.com&#xff0c;上面有超过30种工具&#xff0c;从填字游戏、单词搜索到数独和拼图&#xff0c;一应俱全。这…

作者头像 李华
网站建设 2026/5/28 9:15:26

Linux用户管理与权限配置全攻略

目录 1.用户管理 2.用户相关配置文件/etc/passwd 3.开机自动启动流程 4.用户相关命令详解 5.md5sum校验 6.sudo 提权 1.用户管理 管理员 0 普通用户 1000 虚拟用户 1-999 2.用户相关配置文件/etc/passwd root:x:0:0:root:/root:/bin/b…

作者头像 李华
网站建设 2026/5/28 9:12:01

8051单片机SFR动态配置方案解析

1. C51可配置SFR位访问方案解析在8051单片机开发中&#xff0c;特殊功能寄存器(SFR)的直接访问一直是嵌入式程序员面临的典型挑战。传统做法是将SFR定义硬编码在头文件中&#xff0c;这导致代码复用性差——每次硬件端口变更都需要修改库源代码并重新编译。本文将介绍一种通过外…

作者头像 李华
网站建设 2026/5/28 9:11:18

项目经理与产品经理的核心区别

项目经理&#xff08;Project Manager&#xff09;和产品经理&#xff08;Product Manager&#xff09;虽然名称相似&#xff0c;但职责和关注点截然不同。 项目经理的核心目标是“正确地做事”&#xff0c;即确保项目在规定的时间、预算和范围内高效完成。其职责包括制定计划…

作者头像 李华
网站建设 2026/5/28 9:11:05

药店转型技术观察:从“汤头大药房”到“汤头泡餐饮”,一套AI+药膳的系统化解法

医保控费、集采常态化、线上渠道价格战……传统药店的利润空间被持续压缩。当“卖药”不再是好生意&#xff0c;一些药店开始尝试跨界——卖保健品、做理疗、甚至摆奶茶柜。但多数尝试止步于表面创新&#xff0c;未能解决核心问题&#xff1a;如何让用户主动、高频地走进来&…

作者头像 李华