Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Zyava



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
class rect  
{  
private:  
    double x1, x2, y1, y2;  
 
public:  
rect()  
{  
    x1 = x2 = y1 = y2 = 0;
}  
 
setRect(double tx1, double ty1, double tx2, double ty2)  
{  
    x1 = tx1;
    x2 = tx2;
    y1 = ty1;
    y2 = ty2;
}  
 
double getS()  
{  
  return 1 / 2.0 * ( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ); // S = 1/2 d^2
}  
 
double getP()  
{  
  return 4*sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) )/sqrt(2);  
}  
 
void translate( double diff_X, double diff_Y)  
{  
    x1 += diff_X;
    x2 += diff_X;
    y1 += diff_Y;
    y2 += diff_Y;
}  
 
void rotate (double tx, double ty, double angle)  
{
    // перемещаем систему иак, чтобы точка вращения была началом координат
    double tmp_x = x1 - tx;  
    double tmp_y = y1 - ty;
    // вращаем
    x1 = tmp_x * cos(angle) - tmp_y * sin(angle);
    y1 = tmp_x * sin(angle) + tmp_y * cos(angle);
    // возвращаем назад
    x1 += tx;
    y1 += ty;
     
    // перемещаем систему иак, чтобы точка вращения была началом координат
    tmp_x = x2 - tx;  
    tmp_y = y2 - ty;
    // вращаем
    x2 = tmp_x * cos(angle) - tmp_y * sin(angle);
    y2 = tmp_x * sin(angle) + tmp_y * cos(angle);
    // возвращаем назад
    x2 += tx;
    y2 += ty;
}  
 
void scale (double tx, double ty, double Nscale)  
{
    // перемещаем систему иак, чтобы точка вращения была началом координат
    double tmp_x = x1 - tx;  
    double tmp_y = y1 - ty;
    // масштабируем
    x1 = tmp_x * Nscale;
    y1 = tmp_y * Nscale;
    // возвращаем назад
    x1 += tx;
    y1 += ty;
     
    // перемещаем систему иак, чтобы точка вращения была началом координат
    double tmp_x = x2 - tx;  
    double tmp_y = y2 - ty;
    // масштабируем
    x2 = tmp_x * Nscale;
    y2 = tmp_y * Nscale;
    // возвращаем назад
    x2 += tx;
    y2 += ty;
}  
 
};

Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 12:31 25-09-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru