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

取一點為中心再每隔一角度畫線

尚未結案
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-13 16:56:16 IP:163.28.xxx.xxx 未訂閱
請問各位先進 我想在Image上用滑鼠一點做為中心點,再每隔24度畫出由中心點往外延伸的直線,可是我畫出來的角度都不一致~~ 請各位不吝指點,謝謝!! 以下是我寫的程式:    
void __fastcall TForm1::Image2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{  bool Drawing;
   Image2->Canvas->Pen->Color=clRed;
   Image2->Canvas->Pen->Width=1;
   if (Image1->Picture->Bitmap->Empty==true)
   {
    ShowMessage("½Ð¥ý¸ü¤J¹ÏÀÉ!!");
    Close();
   }
     for(double n=0;n<=360;n=n 24)
     { double H,W;
       if ((n>=0)&&(n<90))
       {
         H=X 50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
        else if ((n>=90)&&(n<180))
       {
         H=X-50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=180)&&(n<270))
       {
         H=X-50*cos(n);
         W=Y 50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=270)&&(n<=360))
       {
         H=X 50*cos(n);
         W=Y 50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }         }    }    
發表人 - williams8807 於 2004/05/13 17:04:34 發表人 - williams8807 於 2004/05/13 17:07:03 發表人 - williams8807 於 2004/05/13 17:10:37 發表人 - williams8807 於 2004/05/13 17:16:18
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-13 19:00:54 IP:61.230.xxx.xxx 未訂閱
引言:
void __fastcall TForm1::Image2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{  bool Drawing;
   Image2->Canvas->Pen->Color=clRed;
   Image2->Canvas->Pen->Width=1;
   if (Image1->Picture->Bitmap->Empty==true)
   {
    ShowMessage("½Ð¥ý¸ü¤J¹ÏÀÉ!!");
    Close();
   }
     for(double n=0;n<=360;n=n 24)
     { double H,W;
       if ((n>=0)&&(n<90))
       {
         H=X 50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
        else if ((n>=90)&&(n<180))
       {
         H=X-50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=180)&&(n<270))
       {
         H=X-50*cos(n);
         W=Y 50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=270)&&(n<=360))
       {
         H=X 50*cos(n);
         W=Y 50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }         }    }    
williams8807你好: cos和sin的用法不對,正確的用法
#define   pi   3.1415      //求cos60度
  n = 60;
  cos((n/180.0)*pi);
^^
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-13 20:52:19 IP:61.221.xxx.xxx 未訂閱
引言: 請問各位先進 我想在Image上用滑鼠一點做為中心點,再每隔24度畫出由中心點往外延伸的直線,可是我畫出來的角度都不一致~~ 請各位不吝指點,謝謝!! 以下是我寫的程式:
void __fastcall TForm1::Image2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{  bool Drawing;
   Image2->Canvas->Pen->Color=clRed;
   Image2->Canvas->Pen->Width=1;
   if (Image1->Picture->Bitmap->Empty==true)
   {
    ShowMessage("½Ð¥ý¸ü¤J¹ÏÀÉ!!");
    Close();
   }
     for(double n=0;n<=360;n=n+24)
     { double H,W;
       if ((n>=0)&&(n<90))
       {
         H=X+50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
        else if ((n>=90)&&(n<180))
       {
         H=X-50*cos(n);
         W=Y-50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=180)&&(n<270))
       {
         H=X-50*cos(n);
         W=Y+50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }
       else if ((n>=270)&&(n<=360))
       {
         H=X+50*cos(n);
         W=Y+50*tan(n);
         Image2->Canvas->MoveTo(X,Y);
         Image2->Canvas->LineTo(H,W);
       }         }    }    
williams8807 你好: 像這個樣子嗎? < class="code"> #define PI 3.14159 #include "math.h" void __fastcall TForm2::Button4Click(TObject *Sender) { int iTime=360/24; int iXC=200; int iYC=200; int iR=150; for(int i=1; i<=iTime; i++) { Image1->Canvas->MoveTo(iXC, iYC); double dAngle=(double)2*PI*(double)(24*i)/(double)360; int iX=iXC-(double)iR*cos(dAngle); int iY=iYC-(double)iR*sin(dAngle); Image1->Canvas->LineTo(iX, iY); } } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-18 18:35:04 IP:163.28.xxx.xxx 未訂閱
謝謝二位版主的幫忙!! 問題已解決~~
系統時間:2024-05-11 17:19:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!