Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2011, 18:31   #1
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию Рисование Звёзд в С !

Всем Привет!

У меня такая проблема :

дано: Фаил где записаны коодинаты Звёзд
( Например : фаил.тхт открываем :
1.Строчка 0.990303(х-Координата) 0,923232(у-Координата) -3.323(наважно) 4.21(Яркость) 332(неважно)
2. Строчка ....2.Зведа
3. и так далее
..

Вообщем мне надо :
1. вычитат каждую звежду
2. перекодировать х и у Координаты в Пиксел
3. Нарисовать ети Пиксели по очереди в Картинку которая пустая (и состоит из 200х200 Пиксел)
4. Формат у Картинаы или этого Документа у нас будет pbf

1.ое я у же сделал (он у меня по очереди читает каждую звезду и сохраняет х и у Координаты + Яркость Звезды
2.здесь я незнаю , нужна какая та формула которая вырешивает ети координаты в Пиксели
3. тоже уже сидел долго и непойму как....

Спасибо заранее
facebook23 вне форума Ответить с цитированием
Старый 10.05.2011, 18:57   #2
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

первести глобальные координаты в локальные можно так

локальная_Х = (Максимальное_значение_глобальной_х / Максимальное_значение_локальной_х) div Значение_глобальной_х

в твоем случае Максимальное_значение_локальной_х = 200

Максимальное_значение_глобальной_х - самая большая х считанная из файла

насчет формата pbf ни чего не скажу о таком не слышал
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 19:04   #3
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

к второму заданию : http://xmages.net/storage/10/1/0/9/e...d/000f9d73.jpg

я не совсем пойму , что ты имеешь в виду с локальными и глобальными ??
facebook23 вне форума Ответить с цитированием
Старый 10.05.2011, 19:08   #4
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

вот так должно в конце выглядеть: http://xmages.net/show.php/2735633_unbenannt-jpg.html
facebook23 вне форума Ответить с цитированием
Старый 10.05.2011, 19:34   #5
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

итак я щас смотрю по рисунку 000f9d73.jpg
пусть x0 и y0 координаты звезд по левой картинки тобишь исходная

считываем все координаты и запоминаем максимальное и минимальное значение
Xmin0 Xmax0 Ymin0 Ymax0

высчитываем размеры окна в кором вписаны эти звезда

w0 = Xmax0 - Xmin0
h0 = Ymax0 - Ymin0

для правого окна минимальные значения равны 0 следовательно и размеры окна равны макисмальным значениям координат тобишь

w1 = 200
h1 = 200

высчитываем коэфициент персчета

горизонтальный
kg = w1 / w0
вертикальный
kv = h1 / h0

теперь при выводе звезд используем следующую формулу, (плюсовать минимальные значения обязательно нужно)

x1 = (x0 + Xmin0) * kg
y1 = (y0 + Ymin0) * kv


если что не понятно берем книжку по компьютерной графике к примеру Порев_В__Компьютерная_графика открываем главу координатный метод и смотрим аффинные преобразования
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 19:36   #6
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

а кстати сразу не увидел на левом рисунке максимумы и минимумы тогда преобразования сводятся к виду

kg = 200/(1-(-1)) = 100
kv = 200/1-(-1)) = 100

x1 = (x1 + 1) * 100(!kg)
y1 = (y1 + 1) * 100(!kv)
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 19:49   #7
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

Спасибо что ответил

Может на примери попробуем:

x1=1.0
y1=1.0

я как понимаю то:

x1=(1.0+1)*100=200 (это правилно)!
y1=(1.0+1)*100=200 (здесь должно 0 выйти)!
facebook23 вне форума Ответить с цитированием
Старый 10.05.2011, 19:57   #8
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

ага понял ошибочку тогда так

x1 = (x0 + 1) * 100(!kg)
y1 = (1 - y0) * 100(!kv)
Могу лишь пнуть в нужном направлении (ну или как получится)

Последний раз редактировалось Swarog; 10.05.2011 в 20:06.
Swarog вне форума Ответить с цитированием
Старый 10.05.2011, 20:28   #9
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

спасибо одной проблемы меньше
facebook23 вне форума Ответить с цитированием
Старый 11.05.2011, 00:49   #10
facebook23
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

следущий вопрос ....


как можно нарисовать этот пиксель, в принципе та он не рисует а в каждую строку записывает w*h + цвет етого пикселя ;

Например моя Картинка 200х200 Пиксель и я хочу теперь один Пиксель с Координатами (34,40) вот этим Цветом (23,43,70) нарисовать! Что надо сделать?

???????????????
facebook23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование в C++ taralesh Помощь студентам 2 15.04.2011 01:11
Рисование Masip Общие вопросы Delphi 10 08.06.2010 22:16
Рисование Granus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 32 30.06.2009 23:23
Рисование Granus Общие вопросы Delphi 2 24.12.2008 07:44