?
問題: 在屏幕上用*顯示0°~360°的余弦函數(shù)cos(x)函數(shù)
分析: 余弦曲線在0°~360°的區(qū)間內(nèi),一行中要顯示兩個(gè)點(diǎn);而對(duì)一般的顯示器來說,只能按行輸出,即:輸出第一行信息后,只能向下一行輸出,不能再返回到上一行.為了獲得本題要求的圖形就必須在一行中一次順序輸出兩個(gè)*.
算法: 為了同時(shí)得到余弦函數(shù)cos(x)圖形在一行上的兩個(gè)點(diǎn),考慮利用cos(x)的左右對(duì)稱性.將屏幕的行方向定義為x,列方向定義為y,則0°~180°的圖形與180°~360°的圖形是左右對(duì)稱的.若定義圖形的總寬度為62列,計(jì)算出x行0°~180°時(shí)y點(diǎn)的坐標(biāo)m,那么在同一行與之對(duì)稱的180°~360°的y點(diǎn)的坐標(biāo)就應(yīng)為62-m.程序中利用反余弦函數(shù)acos計(jì)算坐標(biāo)(x,y)的對(duì)應(yīng)關(guān)系.
?
實(shí)現(xiàn)程序:
?
/* @TODO 繪制余弦曲線 @author jarg http://jarg.iteye.com/ */ import static java.lang.System.*; import static java.lang.Math.*; public class COS { private static final int MULTI = 12; // 圖形放大倍數(shù) private static final int LEN = (int)(acos(-1)*MULTI)*2; // 圖形橫坐標(biāo)長(zhǎng)度 private static int X; // 橫坐標(biāo) private static int Y; // 縱坐標(biāo) public static void main(String[] args) { display(); } public static void display() { for(Y=10; Y>=-10; Y--) { X = (int)(acos((double)Y/10)*MULTI); for(int m=0; m<X; m++) { out.print(" "); } out.print("*"); for(int n=X; n<LEN-X; n++) { out.print(" "); } out.println("*"); } } }??
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
