Форум программистов, компьютерный форум, киберфорум
Наши страницы

Получение матрицы для дерева Пифагора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Есть вопрос по сетевому программированию http://www.cyberforum.ru/cpp-beginners/thread1296.html
Пишу прогу для поиска файлов в сети по заданной маске. Можно ли использовать процедуры FindFirstFile, FindNextFile в асинхронном режиме? Или какими другими их можно заменить?
C++ Как узнать, что делается с файлами? Как узнать какие файлы сейчас использует операционная система Windows, в частности: читает, пишет, используются, перемещается, копируется, удаляется. Путь тотального анализа диска не подойдет. ... http://www.cyberforum.ru/cpp-beginners/thread1291.html
Надо сделать несколько курсоров мыши на экране C++
Подскажите, возможно ли реализовать такую задачу: Нужно сделать одновременно несколько курсоров мыши на экране. Расположены они к примеру на определённом расстоянии друг от друга и при движении...
Помогите с преобразованием строк C++
Помогите плиз. м.б. кто-нибудь знает функцию для преобразования AnsiString в char*
C++ Доделать программу http://www.cyberforum.ru/cpp-beginners/thread1184.html
Помогите плиз, доделать прогу. Ввести массив нецелых чисел. Те из них, которые положительны, копировать в другой массив. Затем отсортировать оба массива: один по возрастанию, другой по убыванию....
C++ Ошибки в программе Уважаемые, помогите найти ошибки в программе (задачка из института): Ниже приведен алгоритм «атомарной» функции, которая меняет местами верхние значения в двух стеках. Если один из стеков пуст, то... подробнее

Показать сообщение отдельно
Subzik
0 / 0 / 0
Регистрация: 16.02.2007
Сообщений: 4
17.02.2007, 22:11  [ТС]
Перемножение матриц - это вроде наши новые координаты.

чтобы повернуть четырехугольник, надо просто умножить вроде бы начальные координаты на матрицу вращения и отобразить результат.
Уменьшение четырехугольника производится по формулам:
Xi=1/sqrt(2)*(Xi-X0)+X0; Yi=1/sqrt(2)*(Yi-Y0)+Y0, i=1, 4. построения. Как все это скомпоновать ума не хватает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
#include<math.h>
void rotate(int[4][3], float, float, float);
 
void main(void)
{
  int gd=DETECT, gm;
  int  alfa1=3.14/4;
  initgraph(&gd, &gm, "C:\\BC31\\BGI");
  getch();
}
 
void rotate (float a[4][3], float alfa1, float x0, float y0)
{
  const int M=4, N=3, K=3;
  int c[M][N], b[N][K];
  int i,j,p;
 
   b[0][0]=cos(alfa1);  b[0][1]=sin(alfa1);  b[0][2]=0;
   b[1][0]=-sin(alfa1); b[1][1]=cos(alfa1);  b[1][2]=0;
   b[2][0]=-x0*(cos(alfa1)-1)+y0*sin(alfa1);
   b[2][1]=-x0*sin(alfa1)-y0*(cos(alfa1)-1);
   b[2][2]=1;
 
   for(i=0; i<=M-1; i++)
   for(j=0; j<=K-1; j++)
   {
     c[i][j]=0;
     for(p=0; p<=N-1; p++) c[i][j]=c[i][j]+a[i][j]*b[p][j];
   }
 
   for(i=0; i<=M-1; i++)
   for(j=0; j<=K-1; j++)  a[i][j]=c[i][j];
   cout<<c[i][j]<<'\t';
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.