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

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

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Баг с простыми арифметическими действиями (приведение типов)?

Код:
class rendering.Line {

	private var __a:PNT;
	private var __b:PNT;
	
	private var __length:Number = Number.NaN;
	private var __height:Number = Number.NaN;
	private var __width:Number = Number.NaN;
	private var __angle:Number = Number.NaN;
	
	public function Line(pa:PNT, pb:PNT) {
		__a = pa;
		__b = pb;
		__width = __b.x - __a.x;
		__height = __b.y - __a.y;
		trace(pa.x + ' : ' + pa.y + ' : ' + pb.x + ' : ' + pb.y);
		trace(__b.x == __a.x);
		trace('angle: ' + __angle + ' : ' + __height + ' : ' + __width);
		__length = Math.sqrt(__width * __width + __height * __height);
		__angle = Math.atan(__width / __height);
	}
}
Код:
class rendering.PNT extends Array {

	public function PNT(xx:Number, yy:Number) {
		this.push(xx);
		this.push(yy);
	}
	
	public function set x(p:Number):Void {
		this[0] = Math.round(p);
	}
	public function get x():Number {
		return this[0];
	}
	public function set y(p:Number):Void {
		this[1] = Math.round(p);
	}
	public function get y():Number {
		return this[1];
	}
}
Похоже на баг компайлера... или я чего-то не понимаю =/

Уже чего только не делал...
Код:
new Line(new PNT(130,130), new PNT(30,130));
И в трейс выдается:
angle: NaN : -2.8421709430404e-14 : -100
(вместо -2.8421709430404e-14 должно быть 0)
__________________
Hell is the possibility of sanity

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

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

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


 


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


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