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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.09.2013, 23:10
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 41  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ага, здорово, спасибо

Старый 04.09.2013, 02:05
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 42  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
То что окружность вписана в угол это частный случай "скругления"

Старый 04.09.2013, 16:32
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 43  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
KumoKairo я доллго не решался спросить, думал, может чего сам не понимаю. Сидел читал, читал, но так и не понял. По этому решил спросить - Ваш код направление тоже не понимает?Просто если угол развернуть, то окружность и лучи не понимают этого и отображаются вне угла.
я именно про такое направление спрашивал. Находить биссектрису и точки я умею. я не могу понять как научить код понимать, что угол должен быть в право или влево.
Код AS3:
var pointC:Point = new Point(200, 200);
var pointA:Point = new Point(400, 250);
var pointB:Point = new Point(300, 400);
Изображения
 

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

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Цитата:
Просто если угол развернуть, то окружность и лучи не понимают этого и отображаются вне угла
Все верно, в формуле расчета матрицы поворота можно менять знак в зависимости от стороны поворота. Еще раз обратитесь к справке, там в формуле плюс минус.
В моем коде хардкодом забита формула со всеми плюсами, поэтому код считает, что мы поворачиваем вектора по часовой стрелке

Цитата:
я именно про такое направление спрашивал.
Изначально вы вообще спрашивали про точку D без всяких поворотов и направлений)

Для нахождения направления поворота можно просто найти минимальный угол поворота (от одного вектора к другому) из двух возможных

Старый 04.09.2013, 20:14
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 45  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Для нахождения направления поворота можно просто найти минимальный угол поворота (от одного вектора к другому) из двух возможных
Можно подробней?

Добавлено через 1 час 26 минут
У меня в голове крутится, какая то странная мысль, которую я самостоятельно не могу опровергнуть.
Если знать вектора ab и ca и угол, то можно же узнать координату точки D? Или это я что то перепутал?
Изображения
 


Последний раз редактировалось Akopalipsis; 04.09.2013 в 21:41.
Старый 05.09.2013, 01:58
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 46  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Может кто нибудь обьяснить, почему когда я ставлю синус точки р0 в минус, меняются координаты точки В?
Код AS3:
package geom 
{
	import flash.display.Sprite;
	import flash.geom.Point;
	public class Vector extends Sprite
	{
 
 
		public function Vector() 
		{
			var A:Point = new Point(100, 400);
			var B:Point = new Point(300, 400);
			var C:Point = new Point(200, 200);
 
 
 
			var ab:Point = new Point(B.x - A.x, B.y - A.y);
			var ca:Point = new Point(A.x - C.x, A.y - B.y);
 
			var a1:Number = Math.atan2(ab.y, ab.x);
			var a2:Number = Math.atan2(ca.y, ca.x);
 
 
 
			var radius:Number = 40;
			var distance:Number = radius / Math.sin(.5 * (a2 - a1));
			var bisector:Number = .5 * (a1 + a2);
 
			var cX:Number = A.x + distance * Math.cos(bisector);
			var cY:Number = A.y + distance * -Math.sin(bisector);
 
			var p0:Point = new Point(cX, cY);
 
			drawPoin([A, B,C,p0]);
		}
		private function drawPoin(array:Array):void
		{
			var point:Sprite;
			var color:uint;
			for (var i:int = 0; i < array.length ; i++)
			{
				if (i == 0)
				{
					color = 0xF59452;
				}
				else
				if (i == 1)
				{
					color = 0xEEF751;
				}
				else
				if (i == 2)
				{
					color = 0xFFFFFF;
				}
				else
				{
					color = 0x94F453;
				}
				point = new Sprite();
				point.graphics.beginFill(color);
				point.graphics.drawCircle(array[i].x, array[i].y, 1);
				point.graphics.endFill();
				this.addChild(point);
			}
		}
 
	}
 
}
Разница только в том, что в первом случаи я добавляю точку р0 в список отображения, а во второй нет.
Координаты по трейсам как и должны быть, а визуально она смещается. И ещё если минус с синуса убрать, то тоже нормально.
Изображения
   


Последний раз редактировалось Akopalipsis; 05.09.2013 в 02:20.
Старый 05.09.2013, 09:33
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 47  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
я не совсем понял кто куда смещается, но скорее всего это просто 'обман зрения' из-за того, что у флешки стоит режим scaleMode = showAll, меняется не координата а масштаб отображения
посмотри будет ли такое в режиме
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

Старый 06.09.2013, 19:48
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 48  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
но скорее всего это просто 'обман зрения'
Вы даже представить не можете, как я сегодня смеялся. я наверное устал от сложности познания геометрии и целый вечер, просто сума сходил из-за того, что не мог понять в чём дело. И отдельное Вам silin за код! я уже сегодня, когда разобрался в нем, то очень был рад, что Вы показали как рисовать кривые попоксельно. Спасибо!
И я был бы очень рад, если бы кто нибудь, смог обьяснить или показать на примере, как можно получить направление или правильно направленные координаты, на примере моего рисунка чуть выше.)

Подскажите пожалуйста какой нибудь ресурс или подскажите, по каким словам можно найти статьи про направление?)
А может кто нибудь на словах обьяснить, что происходит за кулисами метода atan2(); ?
А то как то странно им пользоваться и не понимать.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Происходит арктангенс по двум катетам.
__________________
Reality.getBounds(this);

Старый 06.09.2013, 22:00
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 50  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Происходит арктангенс по двум катетам.
Спасибо, слова катеты, сразу все по местам расставили. я спросил по тому, что сижу и тренируюсь, тренируюсь, читаю и читаю... Но я все же не пойму, как узнавать направление. У silin~на я научился делать направление обхода ( два дня сидел и рисовал чтобы понять ), но он не работает, когда вершины меняются местами. И тут два варианта - либо динамически создавать условие для обхода ( это как то совсем грубо ), либо ввести в условие, какое то значение, которое потом проверять и при помощи его менять. Подскажите пожалуйста, как так сделать. Лучше даже показать или может кто то сам читал какие то статьи связанные с геометрией и векторами во флеше или яве.

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

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

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


 


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


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