如何在控制台上画一个带星号的线?我将接受来自用户的坐标(x1,y1),(x2,y2)。
答案 0 :(得分:1)
假设一个功能合理的控制台,您可以将Horizontal and Vertical Position (HPV)的ANSI转义码与Bresenham's line drawing algorithm结合使用。
附录:由于这是家庭作业,Bresenham's algorithm有点矫枉过正。因为这是一项常见任务,您可以查看others have approached the problem的方式。此外,您可以编辑问题以包含代码和有关分配的其他详细信息。
答案 1 :(得分:0)
我首先会编写一个方法,在给定的x坐标处打印出一个星。例如给定一个x坐标7,打印出6个空格然后是星号。
然后我将确定斜率(y2-y1)/(x2-x1)确保x1是具有更高y值的点(在更高的线上,但这可能是更低的实际值)。然后通过循环
在每次迭代时将x值递增斜率for(i = y1; i<=y2;i++)
asteriskprintfunction(x1+(slope*i));
应该这样做。
编辑: 我不小心用x值做了循环,因为你想逐行,你应该使用y值。还澄清了如何选择哪个点是(x1,y1)