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

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

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

Регистрация: Jul 2007
Сообщений: 59
Thumbs up Груз на нитке.

Пытаюсь сделать такой эффект, некий груз предположим шарик висит на нитке (верхний край нитки зафиксирован), нитка и шарик ведут себя согласно всем законам гравитации, нитка не упругая, а фиксированной длинны. Шарик перетаскивается с помошью мыши. Порыскав на форуме, почитав физику за 9 класс и тд, добился следушего:
Код:
this.createEmptyMovieClip("line", 1);
this.line.init = function(num, len) {
	this.len = len;
	this.point = [];
	for (var i = 0; i<num+1; i++) {
		var t = new Object();
		t.x = 0+i*20;
		t.y = 200;
		this.point.push(t);
	}
};
this.line.onEnterFrame = function() {
	this.point[0].x = 100
	this.point[0].y = 100;
	this.gravity = 30;
	this.clear();
	this.lineStyle(0, 0, 100);
	this.moveTo(this.point[0].x, this.point[0].y);
	for (var i = 1, len = this.point.length; i<len; i++) {
		this.point[200].x = _root.g._x;
		this.point[200].y = _root.g._y;
		//[x1,y1] и [x2,y2] - координаты предыдущей и текущей точки соответственно
		var x1 = this.point[i-1].x, y1 = this.point[i-1].y;
		var x2 = this.point[i].x, y2 = this.point[i].y;
		// xd и yd - разница расстояний между точками
		var xd = x2-x1
		var yd = y2-y1+this.gravity;
		//dist - расстояние между точками
		var dist = Math.sqrt(xd*xd+yd*yd);
		//коррекция расстояния между точками до требуемого (через подобие)
		this.point[i].x = x1+(xd*this.len)/dist;
		this.point[i].y = y1+(yd*this.len)/dist;
		this.lineTo(this.point[i].x, this.point[i].y);
	}
};

this.line.init(200, 1);
не получается привязать шарик к концу нитки и заставить двигаться за курсором вместе с ниткой.
В общем подскажите, буду очень благодарен, если у кого есть материал на эту тему или собственное решение, прошу поделиться. Заранее благодарю.


Последний раз редактировалось _Nickromant_; 06.02.2008 в 20:18.
Старый 06.02.2008, 20:45
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 2  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Имхо, про кривые безье нужно читать.

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

Регистрация: Jul 2007
Сообщений: 59
Находил на форуме ссылку на алгоритмы на основе, кривых Пьера Безье, но к сажелению, они оказались битыми =(, а то что помог найти мне Google, с програмированием связанно слабо в основном теоретический матерьял без применения.
Если у кого есть ссылка, буду благодарен.


Последний раз редактировалось _Nickromant_; 06.02.2008 в 20:57.
Старый 06.02.2008, 20:56
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 4  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Про кривые безье тут:
http://www.bezier.ru/

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

Регистрация: Jul 2007
Сообщений: 59
Obi, хотел уже писать гневный пост с примерно таким содержанием:
"Этот сайт я видел и по кривым Безье, там нечего нет, кроме названия, а вы Obi, проверяйте инфармацию прежде чем ее давать."
Но во время одумался и посмотрел сайт в IE оказалось все нормально, не поверите но в Опере сайт выглядит, совершенно иначе, там ровным счетом 3 покалеченных ссылок =( и не капли про кривые Бюзье. Благодарю, так сказать, за то что открыли мне глаза =).
Буду читать, но всеже хотелось бы советов конкретно по моему случаю.

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

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Там пакет классов для АС2 как раз, Дембицкий писал.

Старый 06.02.2008, 22:06
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 7  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Цитата:
Сообщение от _Nickromant_
Пытаюсь сделать такой эффект, некий груз предположим шарик висит на нитке (верхний край нитки зафиксирован), нитка и шарик ведут себя согласно всем законам гравитации, нитка не упругая, а фиксированной длинны. Шарик перетаскивается с помошью мыши. Порыскав на форуме, почитав физику за 9 класс и тд, добился следушего:

не получается привязать шарик к концу нитки и заставить двигаться за курсором вместе с ниткой.
В общем подскажите, буду очень благодарен, если у кого есть материал на эту тему или собственное решение, прошу поделиться. Заранее благодарю.
Не упругая нить - это такая нить, которая после прекращения действия причины, вызвавшей ее деформацию, теряет исходные размеры и форму, т. е. имеет место остаточная деформация.
Тогда причем тут "фиксированной длины"?
Шарик, весящий на упругой натянутой нити (струне) это маятник - при чем тут кривые Безье?
Моделирование поведения нити, к которой привязан шарик в произвольном случае тянет как минимум на кандидатскую по математике.
ЗЫ: задачу нужно коректно формулировать.

Старый 06.02.2008, 22:43
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 8  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
http://www.cove.org/flade/demos/demo1.htm -- кандидатская?
В середине тележки квадрат на нитке, насколько я понял, автору как-раз это и нужно.

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

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Obi, ваша способность искать всякие вкусности на флеше конечно радует, осталось научиться связывать увиденое с поставленым вопросом. В последнем примере ваще не нить. А кандидатская может получиться, если Вы сами напишите такой же движок.

Старый 06.02.2008, 23:25
_Nickromant_ вне форума Посмотреть профиль Отправить личное сообщение для _Nickromant_ Найти все сообщения от _Nickromant_
  № 10  
Ответить с цитированием
_Nickromant_
 
Аватар для _Nickromant_

Регистрация: Jul 2007
Сообщений: 59
Цитата:
Сообщение от aksios
Не упругая нить - это такая нить, которая после прекращения действия причины, вызвавшей ее деформацию, теряет исходные размеры и форму, т. е. имеет место остаточная деформация.
Тогда причем тут "фиксированной длины"?
Помоему вы что-то перемудрили, думаю если бы вы посмотрели код, который содержится в первом посте, вы бы сразу поняли суть вопроса.
Цитата:
Сообщение от aksios
Моделирование поведения нити, к которой привязан шарик в произвольном случае тянет как минимум на кандидатскую по математике.
Хоть на нобелевскую премию, в любом случае надо делать
Цитата:
Сообщение от Obi
В середине тележки квадрат на нитке, насколько я понял, автору как-раз это и нужно.
По сути то, только конец со стороны тележки зафиксирован, в определенном месте, а кубик перемешается за мышкой
ЗЫ Посмотрите код пожалуйста, там по сути 2 проблемы остались, Как прикрепить груз к концу веревки и как заставить двигаться веревку при перемешении груза.

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

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

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


 


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


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