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

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

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

Регистрация: Jun 2010
Сообщений: 19
Tools Шаблон вдоль кривой

Задача следующая: надо растянуть картинку вдоль кривой с повторениями (пример - железная дорога).
Не подскажете готовых решений (или может это как-то поддерживается на уровне базового API ? ) для такой вот проблемы ?

Старый 23.08.2010, 16:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как вариант:
вдоль Path-а Дембицкого лепим фрагментики этой ж.д.
Код AS3:
package 
{
	import flash.display.*;
	import flash.events.*;
	import flash.geom.*;
	import silin.geom.*;//http://silin.su/AS3/silin.zip
 
 
	public class Main extends Sprite 
	{
		[Embed(source = 'templ.jpg')]
		private var _templClass : Class;//сегментик полотна
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var path:Path = new Path([new Point(10, 10), new Point(100, 50),new Point( 200, 300), new Point(250,350), new Point(300,150)]);
			var len:Number = path.length;
			for (var i:int = 0; i < len; i+=5) //5 - ширина сегментика
			{
				var segm:Bitmap = Bitmap(new _templClass());
				var p:PathPoint = path.getPathPoint(i);
				segm.x = p.x;
				segm.y = p.y;
				segm.rotation = p.rotation;
				addChild(segm);
			}
		}
 
	}
 
}
результат

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

Регистрация: Jun 2008
Сообщений: 205
Цитата:
Сообщение от silin Посмотреть сообщение
как вариант:
вдоль Path-а Дембицкого лепим фрагментики этой ж.д. результат
Что то в месте перегиба не очень...

Старый 23.08.2010, 17:16
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Что то в месте перегиба не очень...
шаблончик бы надо от центра поворачивать, поправл - немного лучше
да и где ты видел, чтобы рельсы так поворачивали

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

Регистрация: Jun 2008
Сообщений: 205
Цитата:
Сообщение от silin Посмотреть сообщение
>>Что то в месте перегиба не очень...
шаблончик бы надо от центра поворачивать, поправл - немного лучше
да и где ты видел, чтобы рельсы так поворачивали
Тада в контексте рельс -- согласен, но допустим если это труба из сегментов или шнур с рифленной поверхрностью.

Старый 23.08.2010, 17:44
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
тогда придется еще и искажать каждый фрагмент в зависости от радиуса кривизны
например смотреть как пересекаются соседние и ужимать/растягивать чтобы это пересечение( или недотягивание) минимизировать

Добавлено через 3 минуты
у Graphics есть еще lineBitmapStyle, может быть оно сработает
но не пробовал даже как и что это

Старый 23.08.2010, 18:46
nukie вне форума Посмотреть профиль Отправить личное сообщение для nukie Найти все сообщения от nukie
  № 7  
Ответить с цитированием
nukie

Регистрация: Jun 2010
Сообщений: 19
Насколько я понял, LineBitmapStyle это когда линия виступает в качестве маски для картинки.
Я нашел в интернете способ , который базируется на использовании текстурированых треугольников. Как вариант, но картинка не совсем акуратная выходит..

Старый 23.08.2010, 19:19
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>но картинка не совсем аккуратная выходит..
а она 'по-жизни' не хочет(не может) быть аккуратной в таком варианте,
см. например обсуждалово http://flasher.ru/forum/showthread.php?t=143470 , там на примере 3D, но сути не меняет

по моим наблюдениям может выйти толк из такого варианта: из твоей изогнутой колбасы сгенерить набор треугольников с соответствующими UV координатами и заливать разом все с помощью drawTriangles - тогда не щелей ни пробелов нет..

но как эти исходные данные готовить не берусь сказать - не вижу ради чего, сори

Старый 23.08.2010, 19:23
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ээ, да нормально всё должно быть, если текстурированными треугольниками, самая морока - расставить точки.
Красивая задачка, но пожалуй чуть больше, чем не лень бесплатно делать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Теги
кисть из картинки , шаблон на кривой

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

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


 


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


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