Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.04.2012, 04:13
senyuk вне форума Посмотреть профиль Отправить личное сообщение для senyuk Найти все сообщения от senyuk
  № 1  
Ответить с цитированием
senyuk

Регистрация: Apr 2012
Сообщений: 4
Question Программа для определения дальности луча отражения

Уважаемые, флешеры. Помогите с написание лабораторной работы.
Не могу продумать алгоритм флешки. как бы не придумывал - везде захожу в тупик
Суть программы, которую мне нужно написать.

Имеется картинка (прикреплена снизу). Она помещается в рабочее пространство. По экрану ездит луч, который управляется с клавы, изменяется по координатам X,Y,Z.

У картинки имеются коэффициенты отражения, допустим:
вода - 1,
камень - 2,
дом - 3,
лес - 4.

Так вот программа по заданной формуле должна высчитать дальность отражённого луча (с учётом этих самых коэффициентов).

Около месяца, конечно понемногу я думал над всем этим и всегда сталкивался с очень сложными проблемами. В итоге терпение моё лопнуло и я решил просить ПОМОЩИ

А вот мои соображения:
Поверх картинки я рисую во флеше картинку из 4 цветов. Синим - вода, это поверх воды я рисую,
Серым - камень, поверх камня рисую, ну и т д.
Моя нарисованная картинка не видна пользователю. Она нужна только для простоты программы. Видна только та фотка...
Далее программа определяет столкновение конца луча с какой то поверхностью, если такое есть, то она возвращает значение цвета моей подложки (getpixel). По возвращённому цвету определяется коэффициент и вставляется в формулу и всё высчитывается.

НО никак не получается=((( Не понимаю, как мне считать значение с помощью get pixel с экрана - не допру

А вообще может кто подскажет лучше и интереснее вариант, алгоритм написание данной проблемы.
З.Ы. Картинка была найдена мной, так что она тоже может подлежать замене. Ну и т д..
Всем большое спасибо, кто посодействует
Миниатюры
Нажмите на изображение для увеличения
Название: Дом у реки.jpg
Просмотров: 70
Размер:	48.8 Кб
ID:	27906  

Старый 24.04.2012, 09:16
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 2  
Ответить с цитированием
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
невозможно понять что значит "дальность отражённого луча", можете объяснить подробнее/понятнее?

Старый 24.04.2012, 12:57
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 3  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Не суть важно что оно такое. У топик-стартера есть формулы - пусть и считает "дальность". Как я понял - у него проблемма с определением цвета подложки в конкретной точке.
Предлагаю каждую зону сделать отдельным спрайтом, а проверку делать методами:
- hitTestPoint - http://help.adobe.com/ru_RU/FlashPla...hitTestPoint()
- getObjectsUndderPoint -http://help.adobe.com/ru_RU/FlashPla...tsUnderPoint()

Старый 24.04.2012, 13:01
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 4  
Ответить с цитированием
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
get pixel можно делать не с экрана, а прямо с битмапы
bitmap.bitmapData.getPixel()
http://help.adobe.com/ru_RU/FlashPla...html#getPixel()

Старый 24.04.2012, 13:08
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 5  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
У него всего четыре зоны, а значит логичнее использовать четыре "цвета-айдишки", а не ломать голову над тем, что делать с одним из многих 24-битных цветов. Но во флеше легче нарисовать Мувик/Спрайтик, чем битмапу...

Старый 24.04.2012, 13:20
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от senyuk Посмотреть сообщение
Не понимаю, как мне считать значение с помощью get pixel с экрана - не допру
Это потому что никак. Метод getPixel() работает не с "экраном", а непосредственно с изображением.

Код AS3:
// 4 значения цвета для каждого индекса
var reflectionIndices:Array = [0xXXXXXX, 0xXXXXXX, 0xXXXXXX, 0xXXXXXX];
 
// определение индекса по цвету точки из заготовленной ранее карты
var index:unt = reflectionIndices.indexOf(reflectionIndicesBitmap.bitmapData.getPixel(x, y));
Цитата:
Сообщение от senyuk Посмотреть сообщение
А вообще может кто подскажет лучше и интереснее вариант
Алгоритм годный.
__________________
Поймай яблоко 2!

Старый 25.04.2012, 00:05
senyuk вне форума Посмотреть профиль Отправить личное сообщение для senyuk Найти все сообщения от senyuk
  № 7  
Ответить с цитированием
senyuk

Регистрация: Apr 2012
Сообщений: 4
Всем огромное СПАСИБО! Сейчас буду пытаться по предложенным вариантам.
З.Ы. Кому было интересно, что такое дальность луча отражение, то:
Луч падает на Землю и отражается от Земли. (По этому принципу сделаны радары у ДПС, только там луч падает на машину и отражается от неё). Дальность - это значит насколько далеко этот луч отразиться от Земли (в метрах, км, и.т.д.)


Последний раз редактировалось mooncar; 25.04.2012 в 00:25.
Старый 25.04.2012, 00:25
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
senyuk, не злоупотребляйте возможностями оформления.
__________________
Идите первым!

Старый 25.04.2012, 00:46
senyuk вне форума Посмотреть профиль Отправить личное сообщение для senyuk Найти все сообщения от senyuk
  № 9  
Ответить с цитированием
senyuk

Регистрация: Apr 2012
Сообщений: 4
Цитата:
Сообщение от elder_Nosferatu Посмотреть сообщение
Не суть важно что оно такое. У топик-стартера есть формулы - пусть и считает "дальность". Как я понял - у него проблемма с определением цвета подложки в конкретной точке.
Предлагаю каждую зону сделать отдельным спрайтом, а проверку делать методами:
- hitTestPoint - http://help.adobe.com/ru_RU/FlashPla...hitTestPoint()
- getObjectsUndderPoint -http://help.adobe.com/ru_RU/FlashPla...tsUnderPoint()
Ошибочка получается. При использовании метода hitTestPoint.
Если я рисую искривлённый спрайт, у него создаётся прямоугольная рамка, которая будет мешать при использовании данного метода определить на какой спрайт попали координаты.
Надеюсь я понятно изъяснился


Последний раз редактировалось mooncar; 25.04.2012 в 00:55.
Старый 25.04.2012, 01:08
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 10  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
http://dougmccune.com/blog/2007/02/0...nt-png-images/
__________________
In Code We Trust

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.