線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1263
推到 Plurk!
推到 Facebook!

如何利用visualc++函式庫畫正弦波??

尚未結案
terry000
一般會員


發表:17
回覆:14
積分:6
註冊:2003-10-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-22 09:45:16 IP:140.130.xxx.xxx 未訂閱
如何利用visualc 函式庫畫正弦波?? 請各位大大給予一個可參考的程式~~
stevenchiou
一般會員


發表:11
回覆:10
積分:4
註冊:2003-09-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-30 08:38:11 IP:61.220.xxx.xxx 未訂閱
VC有直接可以畫正弦波的函式嗎?應該沒有吧,雖然我沒學過VC..^^" 畫出正弦波重點應該在於正弦波公式,我用BCB寫了一個可調振幅的,供你參考, 希望對你有幫助
 
//---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
#include <math.h>   //必要的檔頭
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
                            //振幅
void TForm1::drawSinWave(int Amplify,TImage *Image)
{
    const float PI = 3.1415926;
    TRect Rect;
    Rect = Image->ClientRect;
    int PositionZero = Rect.Height()/2;        Image->Canvas->Brush->Color = (TColor)RGB(255,255,255);
    Image->Canvas->FillRect(Rect);        Image->Canvas->PenPos = TPoint(0,PositionZero);
    Image->Canvas->LineTo(Rect.Width(),PositionZero);        Image->Canvas->PenPos = TPoint(0,PositionZero);//畫筆的位址歸0
    //-----  畫出正弦波 -----
    for(int x = 0;x < 360;x++)//0~360度
    {
        int y = PositionZero-(Amplify*Rect.Height()/2/100)*sin(x*PI/180);//正弦偏移量
        Image->Canvas->LineTo(x,y);
        Image->Canvas->PenPos = TPoint(x,y);
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
    Label1->Caption =IntToStr(TrackBar1->Position) + String("%");
    drawSinWave(TrackBar1->Position,Image1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    drawSinWave(TrackBar1->Position,Image1);
    Label1->Caption = TrackBar1->Position;
}    
拍謝^^哇係新手若問題很笨,請多多見諒 發表人 - taishyang 於 2003/10/30 15:27:59
系統時間:2024-05-19 3:31:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!