اين يك جواب نيست يك سوال است
سلام
من مي خوام يك شكل را كه مي كشم آنرا دوران هم بدم
البته نمي خوام كه از توابع موجود و پيش فرض خود محيط سي++ استفاده كنم
من براي رسم و حركت و دوران از ماتريس t استفاده مي كنم و در اين جاهم در حقيقت كار ماتريس t اين كه شكل كشيده شده را به مبدا مختصات انتقال مي دهد و بعد آن را دوران مي دهد و دوباره آن را به جاي اول بر مي گرداند
ولي هر چه سعي مي كنم برنامه اجراي درست نمي دهد در حقيقت شكل كشيده شده از جايش تكان نمي خورد حتي ذره اي
من كد نوشته شده ام را مي نويسم لطفا اگه مي تونيد راهنماييم كنيد
كد من
[html]
#include<iostream.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<graphics.h>
float points [3][11]= {{300,500,500,100,100,300,300,200,400,300,300},{25 0,250,150,350,250,250,50,50,450,450,250},{1,1,1,1, 1,1,1,1,1,1,1}};
float pi = 4*tan(1);
void rotate(float x , float y , float p)
{
float newpoints[3][11];
int t[3][3] ={{cos(p),-sin(p),x*(1-cos(p))+y*sin(p)},{sin(p),cos(p),y*(1-cos(p))-x*sin(p)},{0,0,1}};
for (int i =0 ; i <3 ;i++)
for (int j = 0 ; j<11 ; 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<11; j++)
points[i][j] = newpoints[i][j];
}
void main()
{
int gd = DETECT , gm ;initgraph(&gd , &gm , "C:\\Red\\Language\\TC\\BGI");
int errorcode = graphresult();
if ( errorcode != 0)
{
cout<<"graphics error"<<grapherrormsg(errorcode);
getch();
exit(0);
}
for ( float i =0; i < 10 ; i++)
line (points[0][i], points [1][i] , points [0][i+1] , points[1][i+1]);
rotate (points[0][5] , points [1][5] ,(2*pi)/36);
for (float j = 0 ; j<10 ; j++)
line ( points[0][j] , points[1][j] , points[0][j+1] , points[1][j+1]);
getch();
closegraph();
}
[/html]
مرسي
راهنمايي كنيد