2013-03-21 57 views
0

我正在使用for循环绘制Java中的Space Needle。我已经在'scale 4'中绘制了它,但现在我正在试图实现,以便用户可以键入他们想要的大小(> 2)。当我试图打印'茶碟'的底部时,出现问题。塔上的其他东西都打印得很整齐,但我正在努力寻找一种算法,可以按比例打印它。Java - ascii绘图逻辑

我确实有“逆向式”,这在我的计划是

((row*2)-2) + scale 

规模是用户选择的数量(> 2)

这会给我上规模4如下:

  || 
      || 
      || 
      || 
     __/||\__ 
     __/:::||:::\__ 
    __/::::::||::::::\__ 
__/:::::::::||:::::::::\__ 
|""""""""""""""""""""""""| 
\_/\/\/\/\/\_/ 
\_/\/\/\/\/\/\/\_/ 
    \_/\/\/\/\/\/\/\/\/\_/ 
    \_/\/\/\/\/\/\/\/\/\/\/\_/ 
      || 
      || 
      || 
      || 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     |%%||%%| 
     __/||\__ 
     __/:::||:::\__ 
    __/::::::||::::::\__ 
__/:::::::::||:::::::::\__ 
|""""""""""""""""""""""""| 

我在努力的符号/图案是“\ /”。因为你可以看到我有以下数 “\ /” 的组成:

1行:4

第2行:6

线路3:8

线4:10

下面会给我一个完整的空间针:

线路1:10

号线2:8

线路3:6

4号线:5

也许我失去了一些东西很基本的,但我很好奇,看看是否有某种逻辑,我可以申请修复它或简单的声明。

请告诉我,如果你要我张贴整个代码

在此先感谢。

最终结果:

     || 
         || 
         || 
         || 
         || 
         || 
         || 
         || 
        __/||\__ 
        __/:::||:::\__ 
       __/::::::||::::::\__ 
      __/:::::::::||:::::::::\__ 
     __/::::::::::::||::::::::::::\__ 
     __/:::::::::::::::||:::::::::::::::\__ 
    __/::::::::::::::::::||::::::::::::::::::\__ 
__/:::::::::::::::::::::||:::::::::::::::::::::\__ 
|""""""""""""""""""""""""""""""""""""""""""""""""| 
\_/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
    \_/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
    \_/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
     \_/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
     \_/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
     \_/\/\/\/\/\/\/\/\/\/\/\/\/\_/ 
      \_/\/\/\/\/\/\/\/\/\/\/\_/ 
       \_/\/\/\/\/\/\/\/\/\_/ 
         || 
         || 
         || 
         || 
         || 
         || 
         || 
         || 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        |%%||%%| 
        __/||\__ 
        __/:::||:::\__ 
       __/::::::||::::::\__ 
      __/:::::::::||:::::::::\__ 
     __/::::::::::::||::::::::::::\__ 
     __/:::::::::::::::||:::::::::::::::\__ 
    __/::::::::::::::::::||::::::::::::::::::\__ 
__/:::::::::::::::::::::||:::::::::::::::::::::\__ 
|""""""""""""""""""""""""""""""""""""""""""""""""| 
+1

也许你需要修改你的公式更多?也许你的意思是'(maxRow-Row)* 2 -2 + scale'? – 2013-03-21 03:05:19

+0

谢谢你帮我弄明白了..我以 ((scale-row)* 2)+ scale)结束了! – user2121604 2013-03-21 03:10:40

+0

欢迎您!我很高兴我能帮上忙! – 2013-03-21 07:14:02

回答

0

Karthink牛逼我指出了正确的方向,我改变了我的公式来

((scale - row)*2) + scale 

和它的作品!

+0

让我们看看漂亮的图片,然后;-)我很想看到你的手工输出在几个不同的尺度...... – jahroy 2013-03-21 03:15:19

+0

当然!我只是调整塔的底部来缩放,然后我会发布它 – user2121604 2013-03-21 03:17:05

+0

你也应该编辑你的标题。我不明白这是如何适用于扭转字符串。我会为你编辑它,但我不能决定怎么称呼它......也许“_how to draw/scale ascii art_”或类似的东西?另外,这里是[一些比赛](http://www.retrojunkie.com/asciiart/building/spacendl.htm)。 – jahroy 2013-03-21 03:23:53