[問題] C語言 畫圓

看板C_and_CPP作者 (機車紋身)時間15年前 (2010/05/06 14:56), 編輯推噓6(6013)
留言19則, 9人參與, 最新討論串1/1
我想利用C語言先設一個陣列 然後畫一個原點為(h,k) 半徑為r的圓 而這圓上面的點為0 其餘為1 .......好像表達的不是很清楚 抱歉! 像這樣 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 這樣比較清楚 圓周上的點為0 其餘為1 #include <stdio.h> #define ROW 24 #define COL 32 #include <math.h> int a[ROW][COL]; void circle(int h,int k,int r){ int x,y; for(x=h-r;x<=h+r;x++){ y = (float)(sqrt(pow(r,2)-pow(x-h,2)))+k; a[ROW-1-y][x]=0; y = -(float)(sqrt(pow(r,2)-pow(x-h,2)))+k; a[y][x]=0; } } int main(void) { int x, y ; for(y=0;y<ROW;y++) for(x=0;x<COL;x++) a[y][x]=1 ; circle(10,10,8); for(y=0;y<ROW;y++){ for(x=0;x<COL;x++) printf("%d ",a[y][x]); printf(";\n"); } return 0; } 可以請各位幫我看看哪邊的值設錯了嗎? 目前跑出來的結果差很多 請各位指教 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.216.246

05/06 14:59, , 1F
^2不是2次方
05/06 14:59, 1F

05/06 15:07, , 2F
能符合你式子的整數格點不多 不用一定要相等 差不多即可
05/06 15:07, 2F

05/06 15:44, , 3F
我一直以為^2是2次方 剛剛爬文"次方"大家好像都這樣寫?
05/06 15:44, 3F

05/06 15:45, , 4F
麻煩大家指教
05/06 15:45, 4F

05/06 15:53, , 5F
打字的時候這樣寫可能是習慣或方便啦, ^ 在C/C++是 XOR
05/06 15:53, 5F

05/06 15:53, , 6F
的意思, 就好像數學上的 = 與在C/C++裡的 = 也不一樣意
05/06 15:53, 6F

05/06 15:53, , 7F
思囉:)
05/06 15:53, 7F

05/06 16:29, , 8F
^在BASIC裡的確是次方的意思
05/06 16:29, 8F

05/06 16:43, , 9F
切換到繪圖模式再畫圓即可
05/06 16:43, 9F

05/06 17:04, , 10F
原來是這樣喔 謝謝Vic大 那請問"2次方"要怎嚜寫呢?
05/06 17:04, 10F

05/06 17:16, , 12F
感謝樓上 ^_^
05/06 17:16, 12F

05/06 17:28, , 13F
這是學校老師出的作業嗎? 我一直覺得化緣很難 都畫不圓
05/06 17:28, 13F

05/06 17:41, , 14F
我也覺得化緣很難,相較之下畫圓簡單多了
05/06 17:41, 14F

05/06 17:43, , 15F
也不算作業啦!!...是我專題要用到 但是我又不是資工科系
05/06 17:43, 15F

05/06 17:44, , 16F
所以...就有點卡卡的 想不到次方不是^2 是pow(x,2)
05/06 17:44, 16F
已將上面錯誤修改好了 再次感謝各位 ※ 編輯: tss9036 來自: 59.126.216.246 (05/06 17:52)

05/06 17:51, , 17F
說真的, n的2次方就寫n*n啦, 寫個macro去套也OK啦:)
05/06 17:51, 17F

05/06 17:54, , 18F
樓上也是沒錯啦XDD 那你不早說 >"< 不過真的謝啦
05/06 17:54, 18F

05/07 04:17, , 19F
上網搜尋 Midpoint circle algorithm,希望對你有幫助
05/07 04:17, 19F
文章代碼(AID): #1BucWbX6 (C_and_CPP)