[心得] 叫AutoCAD自動畫圖的心得分享(附VC源碼)

看板C_and_CPP (C/C++)作者 (sjgau)時間19年前 (2006/02/14 06:33), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
假設,你的應用程式產生如下的數據檔案 它所代表的是一條曲線。 以下的方法可以讓你很容易的叫AutoCAD 自動產生這條曲線。 事實上,這個方法可以適用於所有AutoCAD 所提供的畫圖元件,而且2D/3D都適合使用。 0.000000 0.000000 0.196350 0.195090 0.392699 0.382683 0.589049 0.555570 0.785398 0.707107 0.981748 0.831470 1.178097 0.923880 1.374447 0.980785 1.570796 1.000000 1.767146 0.980785 1.963495 0.923880 2.159845 0.831470 2.356194 0.707107 2.552544 0.555570 2.748894 0.382683 2.945243 0.195090 3.141593 0.000000 3.337942 -0.195090 3.534292 -0.382683 3.730641 -0.555570 3.926991 -0.707107 4.123340 -0.831470 4.319690 -0.923880 4.516039 -0.980785 4.712389 -1.000000 4.908739 -0.980785 5.105088 -0.923880 5.301438 -0.831470 5.497787 -0.707107 5.694137 -0.555570 5.890486 -0.382683 6.086836 -0.195090 6.283185 -0.000000 產生以上數據的程式源碼 #include <stdio.h> #include <conio.h> #include <math.h> #include <process.h> // ---------------------------------------------- // x= dtor( t); double dtor(double d1) { return(d1/180.0*(4.0*atan(1.0))); }// end of dtor() // ---------------------------------------------- void main(int argc, char *argv[]) { // generate sin-curve data // for theta= 0 to 360 step dt do ... int no; double t1, t2, dt, t, x, y; FILE *f1; // ---------------------------------------------- if ((f1= fopen(argv[1], "wt")) == NULL) { printf("*** error of fopen() == NULL\n"); _getch(); exit(1); } // ---------------------------------------------- t1= 0.0; t2= 360.0; no= 32; dt= (t2 - t1)/no; for (t= t1;t <= (t2 + 0.1*dt);t+= dt) { x= dtor(t); y= sin(x); // plot x, y fprintf(f1, "%10.6lf %10.6lf\n", x, y); } fclose(f1); }// end of main() 為了避免被公幹,需要的人請前往我的部落格 留言索取 http://myblog.pchome.com.tw/sjgau/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.103.178 sjgau:轉錄至看板 Cad_Cae 02/14 08:12 sjgau:轉錄至看板 Programming 02/14 08:12

02/14 17:56, , 1F
還蠻有趣的 不過不知道能不能由原圖轉回原始數據
02/14 17:56, 1F

02/14 20:57, , 2F
AutoCAD 可以,因為 ACAD是向量式的繪圖系統
02/14 20:57, 2F
文章代碼(AID): #13yGa-5o (C_and_CPP)
文章代碼(AID): #13yGa-5o (C_and_CPP)