Форум программистов, компьютерный форум CyberForum.ru

Потеря значений переменных при расчетах - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация дискретного логарифма метод Полларда-ро http://www.cyberforum.ru/cpp-beginners/thread655382.html
Реализация дискретного логарифма метод Полларда-ро код С++ #include<iostream> using namespace std; int main(void){ int a,b,n,x,c,d; cin>>a>>b>>n; x=1;
C++ Задачка про Барона Мюнхгаузена Барон Мюнхаузен, выйдя на экологически чистую охоту, зарядил свое ружье косточками вишен. После того как он удачно попал между рога оленям, в которых попало соответственно k1, k2, ..., kn косточек, у них на головах выросли замечательные молодые вишни. Сколько саженцев смог подарить барон Мюнхаузен садоводам-исследователям? Спасибо большое, помогите пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread655381.html
C++ как сделать чтобы программа считала нормально
Поидее должны выполняться операции с двоичными числами, а компилятор воспринимает числа как десятичные, уже неделю немогу ничто придумать, помогите пожалуйста #include "stdafx.h" #include "cstdlib" #include <iostream> #include <conio.h> #include <windows.h> #include <stdio.h> #include <string.h> #include <fstream> using namespace std;
C++ Не компилирует
Здравствуйте! Написал программу в консоли на С++ уже 2 раза но все та же ошибка - code has no effect. помогите, пожалуйста. #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include <iostream.h> #include <conio.h>
C++ Нужно найти ошибку http://www.cyberforum.ru/cpp-beginners/thread655339.html
#include <iostream.h> #include <math.h> double a,b,c,d,v; a=1000; b=1; v=a+b; c=v*v*v*v-(a*a*a+4*a*a*a*b)/6*a*a*b*b+4*a*b*b*b+b*b*b*b; cout<<c; cin>>d; }
C++ Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так. подробнее

Показать сообщение отдельно
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175

Потеря значений переменных при расчетах - C++

21.09.2012, 00:22. Просмотров 362. Ответов 3
Метки (Все метки)

Нужно поворачивать прямоугольник на заданый угол. Вот что у меня получилось:

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
const long double Pi = 3.14159265358979323846264338327956;
int x, y, x1, y1, x2, y2, x3, y3,                    // координаты углов прямоугольника
xo, yo;                                                    // точка, относительно которой поворачивается
int angle;
 
...
 
// Функция поворота, angle - угол
 
bool Rotate( int angle )
    {
        if( angle > 360 )
            angle = angle - 360;
 
        double sin_a, cos_a;
        sin_a = sin( angle * (Pi / 180) );
        cos_a = cos( angle * (Pi / 180) );
 
        
        int x_new, y_new, x1_new, y1_new, x2_new, y2_new, x3_new, y3_new;
 
        x_new  = static_cast <int> ( ((x - xo) * cos_a  - (y - yo) * sin_a) + xo );
        y_new  = static_cast <int> ( ((x - xo) * sin_a  + (y - yo) * cos_a) + yo );
 
        x1_new = static_cast <int> ( ((x1 - xo) * cos_a - (y1 - yo) * sin_a) + xo );
        y1_new = static_cast <int> ( ((x1 - xo) * sin_a + (y1 - yo) * cos_a) + yo );
 
        x2_new = static_cast <int> ( ((x2 - xo) * cos_a - (y2 - yo) * sin_a) + xo );
        y2_new = static_cast <int> ( ((x2 - xo) * sin_a + (y2 - yo) * cos_a) + yo );
 
        x3_new = static_cast <int> ( ((x3 - xo) * cos_a - (y3 - yo) * sin_a) + xo );
        y3_new = static_cast <int> ( ((x3 - xo) * sin_a + (y3 - yo) * cos_a) + yo );
 
        x = x_new; y = y_new; x1 = x1_new; y1 = y1_new; x2 = x2_new; y2 = y2_new;
        x3 = x3_new; y3 = y3_new;
        return true;
    }
Так вот при нескольких поворотах ета фигура уже не очень то похожа на прямоугольник, теряютса значения переменых при преобразование из double в int. Что можно зделать, чтоб прямоугольник оставалса прямоугольником? Или у вас есть лутчая версия функции. Буду благодарен за любую информацию!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru