تور لحظه آخری
امروز : جمعه ، 23 شهریور 1403    احادیث و روایات:  امام حسن عسکری (ع):وصول به خداوند عزوجل سفری است که جز با عبادت در شب حاصل نگردد.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1815398798




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

كلاسهاي سي پلاس آبشون باهم توي يه جوب نميره؟


واضح آرشیو وب فارسی:سایت ریسک: آرام جان گل03-04-2007, 10:55 PMسلام من يه تكه كد نوشتم كه دوتا كلاس داره و دوتا سازنده را بعد هم صدا ميزنم (كارم اشتباهه؟) تنها يكي از كلاسها فعال ميشه و به دومي محل نيمذاره من حتي جاي كلاسها را عوض كردم ولي فايده نداره (فقط از يكي از اونها خوشش اومده وهمون را فعال مي كنه) من حتي از خير كلاس دوم گذشتم و او نرا به صورت تابع تعريف كردم ولي فايده نداره يا از اسم اين تابع خوشش نيومده يا من خيلي هواس پرتم كمكم مي كنيد مرسي كد را مي زارم كد:!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! من بعدا كلاس wave را اين طوري تعريف كردم (تابعي) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! لطفا راهنمايي كنيد همين معذرت مي خوام كه من اين قدر سمج هستم مي دونم با اين سوالاي تكراري و طولاني كه پره بي دقتيه خستتون كردم :41: يادم رفت : فقط كلاس bomb را فعال مي كنه ببخشيد someone04-04-2007, 02:21 AMسلام. وقتی شما از یه کلاس یه object میسازین, Constructor کلاس مورد نظر اجرا میشه. در مورد برنامه شما هم همین طور هست. فقط مشکل اینجاست که چون شما از cleardevice استفاده میکنین موج هایی که با رنگ آبی رسم کردید تنها یک بار رسم میشه و بلافاصله screen پاک میشه و ماهی شروع به حرکت میکنه. راستی! برنامه ی خیلی جالبی نوشتین! آرام جان گل04-04-2007, 02:43 PMسلام اين برنامه يك بمبه كه ميفته توي آب خوب حالا من چي كار كنم كه امواج باشند و بمب من هم حركت كنه وتوي آب بيفته اصلاموج راترسيم نمي كنه حتي زماني كه من تايع wave را قبل از كلاس bomb صدا بزنم كار نمي كنه حالا چي كار كنم :13: لطفا راهنمايي كنيد someone05-04-2007, 03:18 AMدوباره سلام. اين برنامه يك بمبه كه ميفته توي آب ببخشید!!! ولی چرا بمب!؟ دنیا که در صلح و صفاست!!! قسمتی از تصویر رو که موج رو اون رسم میشه رو با استفاده از getimage بافر کنین و بعد در حلقه با استفاده putimage دوباره اونرو restore کنین. آرام جان گل06-04-2007, 01:29 AMسلام اين برنامه ايه كه يك بمب داخل آب ميفته و از بالا آب اين اتفاق ميفته پس نياز دارم به اينكه هم شكل را كه با نقاط يك ماتريس (آرايه سه بعدي) هم دوران بدم و هم انتقال دهم چوناگه انتقال ندم بمب من مرتب دور خودش مي چرخه و داخل آب نميفته ولي موقع دوران يافتن دو تا نقطه آخر شكل را بهم وصل نمي كنه يه ايرادي هست توي برنامه من كه مي خام لطف كنيد و اون را يكبار اجرا كنيد تا مشكل منو ببينيد بمب من هم حركت مي كنه و هم مي چرخه فقط موقع حركت كردن و چرخيدن دو نقطه آخر شكل را درست رسم نمي كنه اون را لطفا اجرا كنيد و بهم بگيد چرا اين اتفاق ميفته لطفا كمكم كنيد مرسي كد را مي ذارم #include<iostream.h> #include<stdio.h> #include<math.h> #include<stdlib.h> #include<conio.h> #include<dos.h> #include<graphics.h> float points[3][13] = {{20,20,15,20,20,40,55,100,125,100,55,40,20 },{50,40,35,30,20,30,20,20,35,50,50,40,50 },{1,1,1,1,1,1,1,1,1,1,1,1,1 }}; points1[3][16]={{20,60,100,140,180,220,260,300,340,380,420,460,5 00,540,580,620},{400,400,400,400,400,400,400,400,4 00,400,400,400,400,400,400,400},{1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1}}; points2[3][16]={{0,40,80,120,160,200,240,280,320,360,400,440,480 ,520,560,600},{425,425,425,425,425,425,425,425,425 ,425,425,425,425,425,425,425},{1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1}}; class bomb { private: float pi; public: bomb(); void myline(float x1, float y1 , float x2 , float y2, int c); void b_move(int a , int b); void rotate(float an , float x, float y); void b_draw(int c); }; void bomb::bomb() { pi = 4*tan(1); b_draw(15); } void bomb::myline(float x1, float y1 , float x2 , float y2, int c ) { float y; if ((x2-x1)==0 ||(x2<x1) ||(y2<y1)) line( x1 , y1 , x2 , y2); else { float m = (y2-y1)/(x2-x1); float b = y2-m*x2; for (float x = x1 ; x<=x2 ; x+=0.01) { y = m * x +b; putpixel(x,y,c); } } } void bomb::b_draw(int c) { for(float a = 0 ; a<12 ; a++) myline(points[0][a],points[1][a],points[0][a+1],points[1][a+1], c); } void bomb::b_move (int a, int b) { float newpoints[3][13]; int t[3][3] ={{1,0,a},{0,1,b},{0,0,1}}; for (int i =0 ; i <3 ;i++) for (int j = 0 ; j<13 ; j++) { newpoints[i][j] = 0; for (int k =0 ; k<3 ; k++) newpoints[i][j] += t[i][k]*points[k][j]; } for(i =0 ; i<3 ; i++) for(j =0 ; j<13; j++) points[i][j] = newpoints[i][j]; } void bomb::rotate(float an , float x , float y) { float angle , tx , ty ; angle = an *(22.0/7.0)/180.0; for (int i = 0 ; i<11 ; i++) { tx = points[0][i]; ty = points[1][i]; points[0][i] = (tx-x)*cos(angle)-(ty-y)*sin(angle)+y; points[1][i] = (tx-x)*sin(angle)+(ty-y)*cos(angle)+x; } } void w_draw(float xc , float yc , float r) { for (float x =-r ; x<=r ; x+=0.01) { float y = sqrt(r*r - x*x); putpixel(x+xc , yc+y , 9); } } void wave() { for(int k = 0 ; k<16 ; k++) w_draw(points1[0][k],points1[1][k],20); for(int j = 0 ; j<16 ; j++) w_draw(points2[0][j],points2[1][j],20); } void main() { int gd = DETECT , gm ; initgraph(&gd , &gm , "C:RedLanguageTCBGI"); int ec = graphresult(); if (ec !=0) { cout<<"Graph Error "<<grapherrormsg(ec); getch(); exit(0); } wave(); bomb act; do { delay(200); act.b_draw(15); setcolor(0); act.b_draw(0); act.b_move(10,20); act.rotate(5, points[0][5], points[1][5]); setcolor(15); } while(!kbhit()); getch(); closegraph(); } someone06-04-2007, 03:21 AMدوباره سلام. مشکل از تابع rotate هست. دلیلش هم اینه که حلقه for شما تا 11 شمرده میشه در صورتی که باید این مقدار 13 باشه : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! روش جالبی برای حرکت به کار بردین. اما مشکلی داره . ممکنه به چشم نیاد اما در برنامه های بزرگتر خودش رو نشون میده. اگه دقت کنین وقتی بمب به موج میرسه مقداری از اون رو پاک میکنه. آرام جان گل06-04-2007, 10:43 PMسلام حرف شما دقيقا درسته اين موضوع را فهميده بودم ولي فكر نمي كردم اون قدر مهم باشه( پاك شدن امواج) اما حالا مي خام وقتي بمب افتاد توي آب صداي انفجار يا آب پخش بشه بايد از تابع sound استفاده كنم؟ چطوري بهش بگم صداي بمب بده( ورودي تابع منظورمه) و يا خروجي اون؟ مرسي راهنمايي كنيد آرام جان گل07-04-2007, 12:19 AMسلام مشكلم در موردتابع sound رفع شد ولي هر كاري مي كنم نمي تونم كدم روطوري تغيير بدم تا وقتي بمب به آب مي خوره امواج تكان بخورند اين تنها ايرادي است كه از اين برنامه دارم لطفا كمك كنيد تا برطرف بشه من كدي كه همراه عملكرد صحيح تابع sound هست را مي زارم فقط اگه شمايه بررسي كنيد و بهم بگيد چي كار كنم تا امواج به حركت درآيند ممنون ميشم مرسي راهنمايي كنيد كد: #include<iostream.h> #include<stdio.h> #include<math.h> #include<stdlib.h> #include<conio.h> #include<dos.h> #include<graphics.h> float points[3][13] = {{20,20,15,20,20,40,55,100,125,100,55,40,20 },{50,40,35,30,20,30,20,20,35,50,50,40,50 },{1,1,1,1,1,1,1,1,1,1,1,1,1 }}; points1[3][16]={{20,60,100,140,180,220,260,300,340,380,420,460,5 00,540,580,620},{400,400,400,400,400,400,400,400,4 00,400,400,400,400,400,400,400},{1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1}}; points2[3][16]={{0,40,80,120,160,200,240,280,320,360,400,440,480 ,520,560,600},{425,425,425,425,425,425,425,425,425 ,425,425,425,425,425,425,425},{1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1}}; class bomb { private: float pi; public: bomb(); void myline(float x1, float y1 , float x2 , float y2, int c); void b_move(int a , int b); void rotate(float an , float x, float y); void b_draw(int c); }; void bomb::bomb() { pi = 4*tan(1); b_draw(15); } void bomb::myline(float x1, float y1 , float x2 , float y2, int c ) { float y; if ((x2-x1)==0 ||(x2<x1) ||(y2<y1)) line( x1 , y1 , x2 , y2); else { float m = (y2-y1)/(x2-x1); float b = y2-m*x2; for (float x = x1 ; x<=x2 ; x+=0.01) { y = m * x +b; putpixel(x,y,c); } } } void bomb::b_draw(int c) { for(float a = 0 ; a<12 ; a++) myline(points[0][a],points[1][a],points[0][a+1],points[1][a+1], c); } void bomb::b_move (int a, int b) { float newpoints[3][13]; int t[3][3] ={{1,0,a},{0,1,b},{0,0,1}}; for (int i =0 ; i <3 ;i++) for (int j = 0 ; j<13 ; j++) { newpoints[i][j] = 0; for (int k =0 ; k<3 ; k++) newpoints[i][j] += t[i][k]*points[k][j]; } for(i =0 ; i<3 ; i++) for(j =0 ; j<13; j++) points[i][j] = newpoints[i][j]; } void bomb::rotate(float an , float x , float y) { float angle , tx , ty ; angle = an *(22.0/7.0)/180.0; for (int i = 0 ; i<13 ; i++) { tx = points[0][i]; ty = points[1][i]; points[0][i] = (tx-x)*cos(angle)-(ty-y)*sin(angle)+y; points[1][i] = (tx-x)*sin(angle)+(ty-y)*cos(angle)+x; } } void w_draw(float xc , float yc , float r, int c) { for (float x =-r ; x<=r ; x+=0.01) { float y = sqrt(r*r - x*x); putpixel(x+xc , yc+y , c); } } void wave(int c) { for(int k = 0 ; k<16 ; k++) w_draw(points1[0][k],points1[1][k],20,c); for(int j = 0 ; j<16 ; j++) w_draw(points2[0][j],points2[1][j],20,c); } void w_move(int a ) { float newpoints1[3][16]; float newpoints2[3][16]; int t[3][3] ={{1,0,a},{0,1,0},{0,0,1}}; for (int i =0 ; i <3 ;i++) for (int j = 0 ; j<13 ; j++) { newpoints1[i][j] = 0; newpoints2[i][j] = 0; for (int k =0 ; k<3 ; k++) newpoints1[i][j] += t[i][k]*points1[k][j]; newpoints2[i][j] += t[i][k]*points2[k][j]; } for(i =0 ; i<3 ; i++) for(j =0 ; j<13; j++) points1[i][j] = newpoints1[i][j]; points2[i][j] = newpoints2[i][j]; } void main() { int gd = DETECT , gm ; initgraph(&gd , &gm , "C:RedLanguageTCBGI"); int ec = graphresult(); if (ec !=0) { cout<<"Graph Error "<<grapherrormsg(ec); getch(); exit(0); } wave(9); bomb act; do { if (points[1][8]>=440) { sound(50); delay(700); nosound(); while(!kbhit()) { delay(100); act.b_draw(15); setcolor(0); act.b_draw(0); act.b_move(10,20); act.rotate(4, points[0][5], points[1][5]); setcolor(15); } } else { delay(100); act.b_draw(15); setcolor(0); act.b_draw(0); act.b_move(10,20); act.rotate(4, points[0][5], points[1][5]); setcolor(15); } } while(!kbhit()); getch(); closegraph(); } someone08-04-2007, 10:45 PMدوباره سلام. نظر من اینه : مختصات محل برخورد بمب رو بدست بیارین (تقریبی) و دوباره موج رو از محل برخورد یکبار به راست و بار دیگه به سمت چپ رسم کنین. چند تغییر کوچیک در تابع رسم موج ایجاد کنین. کافیه مقدار نقاط رو کمی shift بدین. اگه مشکل حل نشد اطلاع بدین. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 741]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن