作者poyenc (发箍)
看板C_and_CPP
标题Re: [问题] 询问C/C++程式方面的问题
时间Sun Mar 31 00:21:56 2019
※ 引述《ericleeyusia (Edward)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: win10
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: c++
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 问题(Question):
: 转成正空心三角形
: 喂入的资料(Input):
: 预期的正确结果(Expected Output):
: 错误结果(Wrong Output):
: 程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
正三角形有点麻烦, 不过如果有用过小画家的话, 应该不难实作出
来. 想像命令列视窗是张
画布, 上面由一格格的
像素 (半形字元占
的空间) 所组成. 如果以全形字元的长宽当作单位, 那我们可以为
每个像素各自指派唯一的
座标 (左上角点为准):
0.5 1 x
┼──┬──┬──→
│ │ │
│ 半 │ 半 │
│ │ │
1├──┴──┘
│
y↓
第一个半形字元的座标为 (0, 0), 第二个则为 (0.5, 0)
所以我们可以将问题转换成:
列举出画面里所有的像素座标, 并且
计算这些座标是否在
三角形的边上, 如果不在边上, 印出半形空白; 否则印出
指定的半形字元
如此只要列举座标的方法正确, 剩下的就是高中数学了, 以下是印
出六芒星的范例给你参考:
范例 (六芒星): https://bit.ly/2UjH3fP
条件改一下想画 sine wave 也是可以的
范例 (正弦): https://bit.ly/2HPtjnc
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.51.8
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1553962919.A.A9A.html
※ 编辑: poyenc (180.176.51.8), 03/31/2019 06:01:45
1F:推 s25g5d4: 那个 sine 波让我想到我大一作业 = = 04/01 00:30