[問題] 畫圖形加上座標軸

看板C_and_CPP (C/C++)作者 (晃晃)時間11年前 (2015/01/10 23:28), 11年前編輯推噓2(3118)
留言22則, 7人參與, 最新討論串1/1
大家好我是初學程式新手 寫作業時遇到遇個問題不知怎麼解決比較好 題目是輸入一個中心座標和邊長畫出大略圖形和座標軸 以正方形為例畫出大略像這樣 // | // ******** // * | * // ------*--+---*----------- // ******** // | 我主要的問題想請問 因為要考慮畫出座標軸的關係 我的寫法有點複雜 就為了考慮落在第幾象限 把它分成了九大類不同情況 每一種再去硬寫出來 非常冗長 想請問類似的題目是否有更簡單的思考方式? 還是只能這樣硬寫呢? (因為寫了個正方形就覺得不太行了...還有圓形三角形QQ) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.106.217 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1420903712.A.EC4.html

01/10 23:33, , 1F
開一個陣列來畫
01/10 23:33, 1F

01/10 23:38, , 2F
2維陣列?
01/10 23:38, 2F

01/10 23:51, , 3F
1. 設定螢幕輸出範圍, 例如 31 * 31, 中心點 (16, 16)
01/10 23:51, 3F

01/10 23:52, , 4F
2. 以 (16, 16) 為中心畫圖形
01/10 23:52, 4F

01/10 23:52, , 5F
3. 平移後的座標原點畫十字線
01/10 23:52, 5F

01/11 00:34, , 6F
所以你寫程式是用嘴的?
01/11 00:34, 6F
呃不太懂樓上說我嘴的意思? 我自己的寫法是開一個二為陣列來畫沒錯 我的想法是把x軸與y軸都考慮三種不同情況 分別是 x軸在左邊 x軸在中間 x軸在右邊 | * * * | * * * | | * * * | * * * | +--*----*-- *-- +---* *--*-----| | * * * | * * * | | * * * | * * * | 類似這樣(比例隨便畫的) x 軸與 y軸都有這樣三種情形 所以一共是九種 然後再下去寫 因為寫完覺得這寫法不太好 所以想請問是否有更簡潔的方法 (還是根本不需要考慮不同情況可直接寫?) 若有造成誤解敬啟見諒 ※ 編輯: wandering25 (111.243.106.217), 01/11/2015 00:46:03

01/11 00:40, , 7F
你要先把座標系轉換定出來 在跑公式
01/11 00:40, 7F

01/11 00:40, , 8F
你這種硬幹法到後面你會發現很難幹下去
01/11 00:40, 8F

01/11 00:48, , 9F
座標轉換要做 不要用切成幾個象限的方法去思考
01/11 00:48, 9F

01/11 00:50, , 10F
...等等 你該不會其實是想找這東西?
01/11 00:50, 10F

01/11 00:50, , 11F

01/11 04:02, , 12F
是作業,應該還不會想找 lib 的東西.
01/11 04:02, 12F

01/12 07:14, , 13F
先理解中心點和特別有意義的座標之間的關係
01/12 07:14, 13F

01/12 07:15, , 14F
你為什麼要一直移動你的平面?
01/12 07:15, 14F

01/12 07:18, , 15F
你都擺在正規平面上了 中心點也定好 當然用中心找邊界
01/12 07:18, 15F

01/12 07:20, , 16F
一個軸一個軸找根本是把XY關係的數學式分別算...
01/12 07:20, 16F

01/12 07:22, , 17F
或是你先畫完圖形再移平面或圖
01/12 07:22, 17F

01/13 14:21, , 18F
「正式」的做法不難,但是需要座標矩陣轉換等等基礎知
01/13 14:21, 18F

01/13 14:21, , 19F
識,我看了一下元po的發言歷史應該還沒學到那麼多...
01/13 14:21, 19F

01/13 14:22, , 20F
不過可以先學著把畫面座標中心訂為0,0的座標轉換
01/13 14:22, 20F

01/13 14:22, , 21F
然後把Y=-40(假設你用80,48螢幕)一格格把X對應值跑出來
01/13 14:22, 21F

01/13 14:25, , 22F
這樣就不用做什麼象限 轉換好座標即可
01/13 14:25, 22F
文章代碼(AID): #1KiKKWx4 (C_and_CPP)
文章代碼(AID): #1KiKKWx4 (C_and_CPP)