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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
#1

Непонятность в одной граф либе - C++

08.03.2011, 01:49. Просмотров 661. Ответов 9
Метки нет (Все метки)

Мм... Вообщем я даже не знаю как сие явление прокомментировать, хочу нарисовать стрелку - дабы в дальнейшем знать как строить класс, рисующий стрелку... Со стрелками идущими в прямом направлении все легко. Но вот диагональ меня как-то пугает...
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Simple_window.h>
#include <Graph.h>
#include <GUI.h>
 
int main()
{
    Simple_window win(Point(0, 0), 800, 600, "My");
    Lines ln;
    ln.add(Point(100, 300), Point(300, 100));
    ln.add(Point(320, 110), Point(300, 100));
    ln.add(Point(300, 100), Point(280, 110));
    win.attach(ln);
    win.wait_for_button();
}
Используется надстройка Страуструпа над библиотекой FLTK. По моему разумению "стрелка" должна бы быть нормальной. Но этого не происходит. Из-за чего? Неужели из-за шероховатостей рельефа? Результат запуска на скрине.
Миниатюры
Непонятность в одной граф либе  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 01:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятность в одной граф либе (C++):

Дана матрица смежности и неориентированный граф. Выяснить соседствуют ли две вершины с данными номерами с одной общей вершиной - C++
народ помогите пожалуйста написать программу на с++ на графы дана матрица смежности и неориентированный граф. выяснить соседствуют ли...

Непонятность с if. - C++
Решил сделать некое подобие калькулятора с побитовыми операторами. Вводищ число, потом оператор (если ввел ~ (побитовое отрицание) то сразу...

непонятность по теории - C++
что означает статическая переменная? она как локальная только не стирается после окончания функции? или как?

непонятность в условии и верен ли алгоритм - C++
Последовательность из l целых чисел b1, b2, ..., bl (1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n) называется хорошей, если каждое число делит без остатка...

Непонятность в маленьком кусочке кода - C++
Здраствуйте. Объясните пожалуйста что происходит в данном фрагменте кода. str1-строка. x-массив целых. for ( i = 0; i &lt; nx; i++) ...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл - C++
помогите очень срочно надо. считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
08.03.2011, 01:54 #2
В Qt рисование объектов под углом забавно решается - поворачивается холст, на нём без всяких затей рисуется нужное изображение, холст поворачивается обратно, все счастливы
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
08.03.2011, 01:58  [ТС] #3
easybudda, Не вариант. Во внутренности fltk лезть совершенно не охота...
Исправил тонким подбором значений.

C++
1
2
3
    ln.add(Point(100, 300), Point(300, 100));
    ln.add(Point(290, 120), Point(300, 100));
    ln.add(Point(300, 100), Point(280, 110));
Буду думать как обобщать теперь...
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
08.03.2011, 02:14 #4
дык у тебя цифорки неправильные
при повороте имеем
http://www.cyberforum.ru/cgi-bin/latex.cgi?x^' = x \cos \alpha
http://www.cyberforum.ru/cgi-bin/latex.cgi?y^' = y \sin \alpha
у тебя концы стрелок на другую величину отклониться должны
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
08.03.2011, 02:22  [ТС] #5
alex_x_x, Туплю по ночам. Пора спать... Что есть что в формуле? x - координата, альфа - угол отклонения? Если да, то какая именно координата + не могу припомнить как посчитать угол отклонения линии.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
08.03.2011, 03:14 #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://liveworkspace.org/code/b659e7...1b33e5160de4fe

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
#include <cmath>
#include <cstdlib>
#include <iostream>
 
struct Point
{
  size_t x,y;
};
 
std::ostream& operator<<(std::ostream& os, const Point& p)
{
   return os << "Point(" << p.x << "," << p.y << ") ";
}
 
int main()
{
   Point v[] = { {300,100}, {300,300}, {290,290}, {290,310} };
   size_t length = sizeof(v)/sizeof(v[0]);
   for( int i=0;i<length;++i )
   {
     v[i].x = v[i].x * cos( M_PI / 4 );
     v[i].y = v[i].y * sin( M_PI / 4 );
   }    
   std::cout << v[0] << v[1] << std::endl;
   std::cout << v[1] << v[2] << std::endl;   
   std::cout << v[1] << v[3] << std::endl;    
}
Добавлено через 3 минуты
не погодь

Добавлено через 29 минут
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
#include <cmath>
#include <cstdlib>
#include <iostream>
 
struct Point
{
  double x,y;
};
 
std::ostream& operator<<(std::ostream& os, const Point& p)
{
   return os << "Point(" << p.x << "," << p.y << ") ";
}
 
int main()
{
   Point v[] = { {100,300}, {300,300}, {290,290}, {290,310} };
   size_t length = sizeof(v)/sizeof(v[0]);
   double angle = - M_PI / 4; 
   for( int i=0;i<length;++i ) 
   {
     v[i].x = v[0].x + (v[i].x-v[0].x) * cos( angle )
                     - (v[i].y-v[0].y) * sin( angle );
     v[i].y = v[0].y + (v[i].x-v[0].x) * sin( angle )
                     + (v[i].y-v[0].y) * cos( angle ); 
   }    
   std::cout << v[0] << v[1] << std::endl;
   std::cout << v[1] << v[2] << std::endl;   
   std::cout << v[1] << v[3] << std::endl;    
}
вспомни школу называется
Kastaneda
08.03.2011, 05:30
  #7

Не по теме:

ForEveR, в чем это вы так рисуете?

ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
08.03.2011, 15:55  [ТС] #8
Kastaneda, Надстройка над FLTK.

Сорсы тут
Для использования нужна скомпилированная библиотека FLTK.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
08.03.2011, 16:14 #9
ForEveR, и как, есть профит?
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
08.03.2011, 18:03  [ТС] #10
alex_x_x, Хм. Да я просто книгу читаю - делаю задания) Про профит - хз. Qt мне нра больше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2011, 18:03
Привет! Вот еще темы с ответами:

Сохранить в одной коллекции несколько объектов классов одной ветви иерархии - C++
Написала программу с иерархией. Для её демонстрации нужно написать 2 класса-коллекции. Но у меня не получается коллекционировать в одной...

В каком либе валяются функции? - C++ Linux
В каком либен валяются XDisplayOpen и XScreenOpen (кажется так)? Хотел под эклипсом сделать окнную приладу, а он пишет, что не определены...

Как сделать запрос через Socks5 proxy на либе xnet? - C#
Собсна сабж. public string GetResponseString(string gate, string command) { var hCommand = gate; var...

Ошибка линковки LNK2019 при линковке (линкер не видит функцию в либе) - Visual C++
Доброго времени суток! Проблема следующая: есть длл - самопальный враппер над Bullet для Ogre3D. Длл писалась и собиралась в МSVC 2010 x64....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.03.2011, 18:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru