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

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

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

Регистрация: Feb 2007
Сообщений: 4
По умолчанию Помогите разобраться с посроением графика функции

Если честно с actionscript не очень дружу!
есть задание вот такое дан график функции y = x2 (икс квадрат ) . нужно ввести ввести начальное, конечное значение х и шаг, наличие координатных осей и сетки!
понял что через y = Math.pow(х, 2); а что как ((

Код AS1/AS2:
_root.createEmptyMovieClip("gr", 0);
gr._x = 0;
gr._y = 200;
gr._x1 = 0;
gr._y1 = 0;
gr.lineStyle(2, "0x006699", 100);
for (var i = 0; i<100; i++)
{
x = i*20;
y = Math.pow(i, 2);
gr.moveTo(x1, y1);
gr.lineTo(x, y);
x1 = x;
y1 = y;
}


Последний раз редактировалось mav3rick; 14.06.2013 в 01:38.
Старый 12.06.2013, 12:27
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
И что не выходит?
Учтите, что точка с координатой 0,0 находится в верхнем левом углу.

gr.moveTo(x1, y1); - делается ОДИН раз.
Далее достаточно только gr.lineTo(x, y);
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
mav3rick, следует оформить код (кнопка AS в панели редактора сообщений).
__________________
Поймай яблоко 2!

Старый 13.06.2013, 23:23
mav3rick вне форума Посмотреть профиль Отправить личное сообщение для mav3rick Найти все сообщения от mav3rick
  № 4  
Ответить с цитированием
mav3rick

Регистрация: Feb 2007
Сообщений: 4
ну как это дело завязать на баттон и ввод начального и конечного значения и еще почему то рисует функцию и какую то непонятную линию в центре которой по идее быть не должно блин (((

Добавлено через 5 часов 3 минуты
Код AS1/AS2:
//отрисовка полей, лейблов и кнопки
createClassObject(mx.controls.Label, "Lh", depth, {text:"minX"});
Lh._x = 10;
Lh._y = 10;
depth++;
createClassObject(mx.controls.TextInput, "x1", depth, {text:"-100"});
x1._x = 10;
x1._y = 30;
depth++;
createClassObject(mx.controls.Label, "Lh1", depth, {text:"x1"});
Lh1._x = 110;
Lh1._y = 30;
depth++;
createClassObject(mx.controls.Label, "Lh3", depth, {text:"maxX"});
Lh3._x = 130;
Lh3._y = 10;
depth++;
createClassObject(mx.controls.TextInput, "x2", depth, {text:"100"});
x2._x = 130;
x2._y = 30;
depth++;
createClassObject(mx.controls.Label, "Lh4", depth, {text:"x2"});
Lh4._x = 230;
Lh4._y = 30;
depth++;
 
createClassObject(mx.controls.Label, "Lh6", depth, {text:"Шаг"});
Lh6._x = 250;
Lh6._y = 10;
depth++;
createClassObject(mx.controls.TextInput, "x3", depth, {text:"10"});
x3._x = 250;
x3._y = 30;
depth++;
createClassObject(mx.controls.Label, "Lh7", depth, {text:"x3"});
Lh7._x = 350;
Lh7._y = 30;
depth++;
 
createClassObject(mx.controls.Button, "ButDraw", 1000, {label:"Построить"});
ButDraw._x = 400;
ButDraw._y = 45;
ButDraw.onRelease = function() {
_root.createEmptyMovieClip("gr", 0);
	var maStab:Number = 0;
var minX:Number = 1000;
var maxX:Number = -1000;
var minY:Number = 1000;
var maxY:Number = -1000;
	//читаем переменные, заносим их в переменные
	var p1X:Number = Number(x1.text);
	trace(p1X);
	var p2X:Number = Number(x2.text);
	trace(p2X);
	var p3X:Number = Number(x3.text);
	trace(p3X);
	// Рисуем рамку 150*380
	gr.lineStyle(3, "0x005679", 100);
	gr.moveTo(20, 150);
	gr.lineTo(530, 150);
	gr.lineTo(530, 380);
	gr.lineTo(20, 380);
	gr.lineTo(20, 150);
	// Рисуем сетку
	//os x
	gr.lineStyle(1, "0x005679", 100);
	for (var i = 150; i<380; i=i+10) {
		gr.moveTo(20, i);
		gr.lineTo(530, i);
	}
	// os Y
	for (var i = 20; i<530; i=i+10) {
		gr.moveTo(i, 150);
		gr.lineTo(i, 380);
	}
	//Рисуем оси координат
	gr.lineStyle(3, "0x005679", 100);
	gr.moveTo(10, 265);
	gr.lineTo(540, 265);
	gr.moveTo(275, 140);
	gr.lineTo(275, 390);
	//подписи осей
	createClassObject(mx.controls.Label, "Lh9", depth, {text:"0"});
	Lh9._x = 275;
	Lh9._y = 265;
	depth++;
	createClassObject(mx.controls.Label, "Lh10", depth, {text:"Y"});
	Lh10._x = 275;
	Lh10._y = 380;
	depth++;
	createClassObject(mx.controls.Label, "Lh11", depth, {text:"X"});
	Lh11._x = 540;
	Lh11._y = 265;
	depth++;
 
 
var nachY:Number = 0; 
var nachX:Number = 0;
var x:Number = 0; 
var y:Number = 0;
var masX:Number = p3X; // масштаб по X
var masY:Number = p3X; // масштаб по У
 
gr.lineStyle(2, "0x006699", 100);
 
//p1x минимум х
//p2x максимум х
//p3x - щаг
 
var nachY:Number = 0; 
var nachX:Number = 0;
var x:Number = 0; 
var y:Number = 0;
var masX:Number = p3X; // масштаб по X
var masY:Number = p3X; // масштаб по У
//нахождение начальной точки рисования
nachX = (p1X*p3X)+275;
nachY = 200-(Math.pow(p1X, 2)*p3X);
gr.lineStyle(2, "0x006699", 100);
gr.moveTo(nachX,nachY);
//отрисовка параболы
for (var i = p1X ; i<(p2X); i++)
{
x = i*p3X;
y = p3X*Math.pow(i, 2);
x=x+275;
y=265-y;
gr.lineTo(x, y);
}
 
}


как то так но не понял еще почему при изменении максимума х меняется только одна часть графика (


Последний раз редактировалось mav3rick; 14.06.2013 в 04:37.
Старый 14.06.2013, 11:51
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
depth и depth++ - НЕ НАДО.

НАдо: createClassObject(mx.controls.Label, "Lh7", this.getNextHighestDepth(), {text:"x3"});

this.getNextHighestDepth() - взять следующую незанятую глубину

Добавлено через 10 минут
НЕпонятные линии и прочее - у вас тупо ошибки в формулах.
Почему
nachY = 200-(Math.pow(p1X, 2)*p3X) / 10
а далее
y = 265 - p3X*Math.pow(i, 2) / 10
???

Код AS1/AS2:
//отрисовка полей, лейблов и кнопки
createClassObject(mx.controls.Label, "Lh", this.getNextHighestDepth(), {text:"minX"});
Lh._x = 10;
Lh._y = 10;
 
createClassObject(mx.controls.TextInput, "x1", this.getNextHighestDepth(), {text:"-100"});
x1._x = 10;
x1._y = 30;
 
createClassObject(mx.controls.Label, "Lh1", this.getNextHighestDepth(), {text:"x1"});
Lh1._x = 110;
Lh1._y = 30;
 
createClassObject(mx.controls.Label, "Lh3", this.getNextHighestDepth(), {text:"maxX"});
Lh3._x = 130;
Lh3._y = 10;
 
createClassObject(mx.controls.TextInput, "x2", this.getNextHighestDepth(), {text:"100"});
x2._x = 130;
x2._y = 30;
 
createClassObject(mx.controls.Label, "Lh4", this.getNextHighestDepth(), {text:"x2"});
Lh4._x = 230;
Lh4._y = 30;
 
createClassObject(mx.controls.Label, "Lh6", this.getNextHighestDepth(), {text:"Шаг"});
Lh6._x = 250;
Lh6._y = 10;
 
createClassObject(mx.controls.TextInput, "x3", this.getNextHighestDepth(), {text:"10"});
x3._x = 250;
x3._y = 30;
 
createClassObject(mx.controls.Label, "Lh7", this.getNextHighestDepth(), {text:"x3"});
Lh7._x = 350;
Lh7._y = 30;
 
 
createClassObject(mx.controls.Button, "ButDraw", 1000, {label:"Построить"});
ButDraw._x = 400;
ButDraw._y = 45;
 
 
_root.createEmptyMovieClip("gr", this.getNextHighestDepth());
 
ButDraw.onRelease = drawGraf	
 
drawGraf()
 
function drawGraf() {
 
	gr.clear()
 
	var maStab:Number = 0;
	var minX:Number = 1000;
	var maxX:Number = -1000;
	var minY:Number = 1000;
	var maxY:Number = -1000;
 
	//читаем переменные, заносим их в переменные
	var p1X:Number = Number(x1.text);
	trace(p1X);
	var p2X:Number = Number(x2.text);
	trace(p2X);
	var p3X:Number = Number(x3.text);
	trace(p3X);
 
 
	// Рисуем рамку 150*380
	gr.lineStyle(3, "0x005679", 100);
	gr.moveTo(20, 150);
	gr.lineTo(530, 150);
	gr.lineTo(530, 380);
	gr.lineTo(20, 380);
	gr.lineTo(20, 150);	
 
	// Рисуем сетку
	//os x
	gr.lineStyle(1, "0x005679", 50);
	for (var i = 150; i<380; i=i+10) {
		gr.moveTo(20, i);
		gr.lineTo(530, i);
	}
	// os Y
	for (var i = 20; i<530; i=i+10) {
		gr.moveTo(i, 150);
		gr.lineTo(i, 380);
	}
	//Рисуем оси координат
	gr.lineStyle(3, "0x005679", 100);
	gr.moveTo(10, 265);
	gr.lineTo(540, 265);
	gr.moveTo(275, 140);
	gr.lineTo(275, 390);
	//подписи осей
	createClassObject(mx.controls.Label, "Lh9", this.getNextHighestDepth(), {text:"0"});
	Lh9._x = 275;
	Lh9._y = 265;
	createClassObject(mx.controls.Label, "Lh10", this.getNextHighestDepth(), {text:"Y"});
	Lh10._x = 275;
	Lh10._y = 380;
	createClassObject(mx.controls.Label, "Lh11", this.getNextHighestDepth(), {text:"X"});
	Lh11._x = 540;
	Lh11._y = 265;
 
 
	var nachY:Number = 0; 
	var nachX:Number = 0;
	var x:Number = 0; 
	var y:Number = 0;
	var masX:Number = p3X; // масштаб по X
	var masY:Number = p3X; // масштаб по У
 
	gr.lineStyle(2, "0x006699", 100);
 
	//p1x минимум х
	//p2x максимум х
	//p3x - щаг
 
	var nachY:Number = 0; 
	var nachX:Number = 0;
	var x:Number = 0; 
	var y:Number = 0;
	var masX:Number = p3X; // масштаб по X
	var masY:Number = p3X; // масштаб по У
	//нахождение начальной точки рисования
	nachX = (p1X*p3X)+275;
	nachY = 265-(Math.pow(p1X, 2)*p3X) / 10
 
	gr.lineStyle(2, "0xFFFF00", 100);
	gr.moveTo(nachX,nachY);
	//отрисовка параболы
	for (var i = p1X ; i<(p2X); i++){
		x = i*p3X + 275
		y = 265 - p3X*Math.pow(i, 2) / 10
		gr.lineTo(x, y);
	}
 
}
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2


Последний раз редактировалось dark256; 14.06.2013 в 12:06.
Старый 14.06.2013, 20:15
mav3rick вне форума Посмотреть профиль Отправить личное сообщение для mav3rick Найти все сообщения от mav3rick
  № 6  
Ответить с цитированием
mav3rick

Регистрация: Feb 2007
Сообщений: 4
СПС )) буду масштабную сетку делать )) сейчас код я в 6 утра исправил! Опечатки так как не спал )

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

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

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


 


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


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