2013-03-21 58 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