Разработка базы данных 3D-объектов системы проектирования интерьеров
Универсальная подпрограмма по записи элементов и атрибутов из таблицы XML в различные массивы, в зависимости от раздела. Алгоритм трехмерной визуализации. Классы разбора таблицы XML по элементам и атрибутам. Алгоритмы работы с двухмерными объектами.
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
arr_visible_w[n_i] = w_in_i[n_tables - (n_i + buf_last) + 1];
arr_visible_h[n_i] = h_in_i[n_tables - (n_i + buf_last) + 1];
}
if ((x_in_i[n_tables - (n_i + buf_last) + 1] != 0)&&(last_num <n_tables)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
};
};
if ((menu_obj_flag[7])&&(table_menu_open)&&(last_num > 1)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_tables - n_i + 1] != undefined) {
loadMovie(url_in_i[n_tables - (buf_last - n_i)], obj_in_i[Math.abs(n_i-6)]);
arr_visible_i[Math.abs(n_i-6)] = n_tables - (buf_last - n_i);
arr_visible_w[Math.abs(n_i-6)] = w_in_i[n_tables - (buf_last - n_i)];
arr_visible_h[Math.abs(n_i-6)] = h_in_i[n_tables - (buf_last - n_i)];
}
if ((x_in_i[n_tables - (buf_last - n_i)] != 0)&&(last_num <= n_tables)) {
last_num -= 1;
};
obj_flag_i[n_i] = false;
};
};
flag_url = false;
flag_x = false;
flag_y = false;
};
if (type_of_obj == "shkaf") {
if ((menu_obj_flag[10])&&(!shkaf_menu_open)) {
last_num = 0;
for (var n_i = 1; n_i <=5; n_i++) {
name = type_of_obj + n_i;
obj_in_i[n_i] = _root.createEmptyMovieClip(name, n_i+in_k_i);
loadMovie(url_in_i[n_shkafs - n_i + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_shkafs - n_i + 1;
arr_visible_w[n_i] = w_in_i[n_shkafs - n_i + 1];
arr_visible_h[n_i] = h_in_i[n_shkafs - n_i + 1];
if (last_num == 0) {
obj_in_i[n_i]._y = menu_obj[10]._y + 10 + last_num*40 + 30;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_shkafs - n_i + 1]);
} else {
obj_in_i[n_i]._y = menu_obj[10]._y + 10 + last_num*40 + 30 + last_num*10;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_shkafs - n_i + 1]);
};
if ((x_in_i[n_shkafs - n_i] != 0)&&(last_num <n_shkafs - 5)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
obj_in_i[n_i]._alpha = 100;
obj_in_i[n_i].enabled = true;
};
};
if ((menu_obj_flag[6])&&(shkaf_menu_open)&&(last_num < n_shkafs)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_shkafs - n_i + 1] != undefined) {
loadMovie(url_in_i[n_shkafs - (n_i + buf_last) + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_shkafs - (n_i + buf_last) + 1;
arr_visible_w[n_i] = w_in_i[n_shkafs - (n_i + buf_last) + 1];
arr_visible_h[n_i] = h_in_i[n_shkafs - (n_i + buf_last) + 1];
}
if ((x_in_i[n_shkafs - (n_i + buf_last) + 1] != 0)&&(last_num <n_shkafs)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
};
};
if ((menu_obj_flag[7])&&(shkaf_menu_open)&&(last_num > 1)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_shkafs - n_i + 1] != undefined) {
loadMovie(url_in_i[n_shkafs - (buf_last - n_i)], obj_in_i[Math.abs(n_i-6)]);
arr_visible_i[Math.abs(n_i-6)] = n_shkafs - (buf_last - n_i);
arr_visible_w[Math.abs(n_i-6)] = w_in_i[n_shkafs - (buf_last - n_i)];
arr_visible_h[Math.abs(n_i-6)] = h_in_i[n_shkafs - (buf_last - n_i)];
}
if ((x_in_i[n_shkafs - (buf_last - n_i)] != 0)&&(last_num <= n_shkafs)) {
last_num -= 1;
};
obj_flag_i[n_i] = false;
};
};
flag_url = false;
flag_x = false;
flag_y = false;
};
if (type_of_obj == "chear") {
if ((menu_obj_flag[11])&&(!chear_menu_open)) {
last_num = 0;
for (var n_i = 1; n_i <=5; n_i++) {
name = type_of_obj + n_i;
obj_in_i[n_i] = _root.createEmptyMovieClip(name, n_i+in_k_i);
loadMovie(url_in_i[n_chears - n_i + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_chears - n_i + 1;
arr_visible_w[n_i] = w_in_i[n_chears - n_i + 1];
arr_visible_h[n_i] = h_in_i[n_chears - n_i + 1];
if (last_num == 0) {
obj_in_i[n_i]._y = menu_obj[11]._y + 10 + last_num*40 + 30;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_chears - n_i + 1]);
} else {
obj_in_i[n_i]._y = menu_obj[11]._y + 10 + last_num*40 + 30 + last_num*10;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_chears - n_i + 1]);
};
if ((x_in_i[n_chears - n_i] != 0)&&(last_num <n_chears - 5)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
obj_in_i[n_i]._alpha = 100;
obj_in_i[n_i].enabled = true;
};
};
if ((menu_obj_flag[6])&&(chear_menu_open)&&(last_num < n_chears)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_chears - n_i + 1] != undefined) {
loadMovie(url_in_i[n_chears - (n_i + buf_last) + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_chears - (n_i + buf_last) + 1;
arr_visible_w[n_i] = w_in_i[n_chears - (n_i + buf_last) + 1];
arr_visible_h[n_i] = h_in_i[n_chears - (n_i + buf_last) + 1];
}
if ((x_in_i[n_chears - (n_i + buf_last) + 1] != 0)&&(last_num <n_chears)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
};
};
if ((menu_obj_flag[7])&&(chear_menu_open)&&(last_num > 1)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_chears - n_i + 1] != undefined) {
loadMovie(url_in_i[n_chears - (buf_last - n_i)], obj_in_i[Math.abs(n_i-6)]);
arr_visible_i[Math.abs(n_i-6)] = n_chears - (buf_last - n_i);
arr_visible_w[Math.abs(n_i-6)] = w_in_i[n_chears - (buf_last - n_i)];
arr_visible_h[Math.abs(n_i-6)] = h_in_i[n_chears - (buf_last - n_i)];
}
if ((x_in_i[n_chears - (buf_last - n_i)] != 0)&&(last_num <= n_chears)) {
last_num -= 1;
};
obj_flag_i[n_i] = false;
};
};
flag_url = false;
flag_x = false;
flag_y = false;
};
if (type_of_obj == "light") {
if ((menu_obj_flag[12])&&(!light_menu_open)) {
last_num = 0;
for (var n_i = 1; n_i <=5; n_i++) {
name = type_of_obj + n_i;
obj_in_i[n_i] = _root.createEmptyMovieClip(name, n_i+in_k_i);
loadMovie(url_in_i[n_lights - n_i + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_lights - n_i + 1;
arr_visible_w[n_i] = w_in_i[n_lights - n_i + 1];
arr_visible_h[n_i] = h_in_i[n_lights - n_i + 1];
if (last_num == 0) {
obj_in_i[n_i]._y = menu_obj[12]._y + 10 + last_num*40 + 30;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_lights - n_i + 1]);
} else {
obj_in_i[n_i]._y = menu_obj[12]._y + 10 + last_num*40 + 30 + last_num*10;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_lights - n_i + 1]);
};
if ((x_in_i[n_lights - n_i] != 0)&&(last_num <n_lights - 5)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
obj_in_i[n_i]._alpha = 100;
obj_in_i[n_i].enabled = true;
};
};
if ((menu_obj_flag[6])&&(light_menu_open)&&(last_num < n_lights)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_lights - n_i + 1] != undefined) {
loadMovie(url_in_i[n_lights - (n_i + buf_last) + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_lights - (n_i + buf_last) + 1;
arr_visible_w[n_i] = w_in_i[n_lights - (n_i + buf_last) + 1];
arr_visible_h[n_i] = h_in_i[n_lights - (n_i + buf_last) + 1];
}
if ((x_in_i[n_lights - (n_i + buf_last) + 1] != 0)&&(last_num <n_lights)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
};
};
if ((menu_obj_flag[7])&&(light_menu_open)&&(last_num > 1)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_lights - n_i + 1] != undefined) {
loadMovie(url_in_i[n_lights - (buf_last - n_i)], obj_in_i[Math.abs(n_i-6)]);
arr_visible_i[Math.abs(n_i-6)] = n_lights - (buf_last - n_i);
arr_visible_w[Math.abs(n_i-6)] = w_in_i[n_lights - (buf_last - n_i)];
arr_visible_h[Math.abs(n_i-6)] = h_in_i[n_lights - (buf_last - n_i)];
}
if ((x_in_i[n_lights - (buf_last - n_i)] != 0)&&(last_num <= n_lights)) {
last_num -= 1;
};
obj_flag_i[n_i] = false;
};
};
flag_url = false;
flag_x = false;
flag_y = false;
};
if (type_of_obj == "ather") {
if ((menu_obj_flag[13])&&(!ather_menu_open)) {
last_num = 0;
for (var n_i = 1; n_i <=5; n_i++) {
name = type_of_obj + n_i;
obj_in_i[n_i] = _root.createEmptyMovieClip(name, n_i+in_k_i);
loadMovie(url_in_i[n_athers - n_i + 1], obj_in_i[n_i]);
if (last_num == 0) {
obj_in_i[n_i]._y = menu_obj[13]._y + 10 + last_num*40 + 30;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_athers - n_i + 1]);
arr_visible_i[n_i] = n_athers - n_i + 1;
arr_visible_w[n_i] = w_in_i[n_athers - n_i + 1];
arr_visible_h[n_i] = h_in_i[n_athers - n_i + 1];
} else {
obj_in_i[n_i]._y = menu_obj[13]._y + 10 + last_num*40 + 30 + last_num*10;
obj_in_i[n_i]._x = parseFloat(x_in_i[n_athers - n_i + 1]);
arr_visible_i[n_i] = n_athers - n_i + 1;
};
if ((x_in_i[n_athers - n_i] != 0)&&(last_num <n_athers - 5)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
obj_in_i[n_i]._alpha = 100;
obj_in_i[n_i].enabled = true;
};
};
if ((menu_obj_flag[6])&&(ather_menu_open)&&(last_num < n_athers)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_athers - n_i + 1] != undefined) {
loadMovie(url_in_i[n_athers - (n_i + buf_last) + 1], obj_in_i[n_i]);
arr_visible_i[n_i] = n_athers - (n_i + buf_last) + 1;
arr_visible_w[n_i] = w_in_i[n_athers - (n_i + buf_last) + 1];
arr_visible_h[n_i] = h_in_i[n_athers - (n_i + buf_last) + 1];
}
if ((x_in_i[n_athers - (n_i + buf_last) + 1] != 0)&&(last_num <n_athers)) {
last_num += 1;
};
obj_flag_i[n_i] = false;
};
};
if ((menu_obj_flag[7])&&(ather_menu_open)&&(last_num > 1)) {
var buf_last = last_num;
for (var n_i = 1; n_i <=5; n_i++) {
if (url_in_i[n_athers - n_i + 1] != undefined) {
loadMovie(url_in_i[n_athers - (buf_last - n_i)], obj_in_i[Math.abs(n_i-6)]);
arr_visible_i[Math.abs(n_i-6)] = n_athers - (buf_last - n_i);
arr_visible_w[Math.abs(n_i-6)] = w_in_i[n_athers - (buf_last - n_i)];
arr_visible_h[Math.abs(n_i-6)] = h_in_i[n_athers - (buf_last - n_i)];
}
if ((x_in_i[n_athers - (buf_last - n_i)] != 0)&&(last_num <= n_athers)) {
last_num -= 1;
};
obj_flag_i[n_i] = false;
};
};
flag_url = false;
flag_x = false;
flag_y = false;
};
};
//Блок кода, посвещенный рисованию линий, точек, стенки, рамки.
//Функция рисования точек
function createpoint(target:MovieClip, color_p:Number) : Void {
target.lineStyle(2,color_p);
target.moveTo(0,0);
target.beginFill(color_p);
target.lineTo(w_p,0);
target.lineTo(w_p,h_p);
target.lineTo(0,h_p);
target.lineTo(0,0);
target.endFill();
};
//Функция создания рамки вокруг выделяемой точки
function createborder(n_p:Number, w_in:Number, h_in:Number) : Void {
borderlayer.clear();
borderlayer.lineStyle(1,color);
borderlayer.moveTo((arr_coordx[n_p]-w_in),(arr_coordy[n_p]-h_in));
borderlayer.lineTo((arr_coordx[n_p]-w_in),(arr_coordy[n_p]+h_in));
borderlayer.lineTo((arr_coordx[n_p]+w_in),(arr_coordy[n_p]+h_in));
borderlayer.lineTo((arr_coordx[n_p]+w_in),(arr_coordy[n_p]-h_in));
borderlayer.lineTo((arr_coordx[n_p]-w_in),(arr_coordy[n_p]-h_in));
};
function createborder_obj(target:MovieClip) : Void {
borderlayer.clear();
borderlayer.lineStyle(1,color);
borderlayer.moveTo(target._x - 5, target._y - 5);
borderlayer.lineTo(target._x - 5, target._y + target._height + 5);
borderlayer.lineTo(target._x + target._width + 5, target._y + target._height + 5);
borderlayer.lineTo(target._x + target._width + 5, target._y - 5);
borderlayer.lineTo(target._x - 5, target._y - 5);
};
//Функция рисования линии между точками
function drawline(i_l:Number) : Void {
k = i_l;
arr_l[i_l-1] = linelayer.createEmptyMovieClip("line" + i_l,k);
arr_l[i_l-1].lineStyle(1,colorl);
arr_l[i_l-1].moveTo(arr_coordx[i_l-1], arr_coordy[i_l-1]);
arr_l[i_l-1].lineTo(arr_coordx[i_l], arr_coordy[i_l]);
};
function redrawline(i_l:Number) : Void {
if ((i_l == 1) && (drawing_end)) {
arr_l[i_l].clear();
arr_l[i_l].lineStyle(1,colorl);
arr_l[i_l].moveTo(arr_coordx[i_l], arr_coordy[i_l]);
arr_l[i_l].lineTo(arr_coordx[i_l+1], arr_coordy[i_l+1]);
arr_l[i-1].clear();
arr_l[i-1].lineStyle(1,colorl);
arr_l[i-1].moveTo(arr_coordx[i-1], arr_coordy[i-1]);
arr_l[i-1].lineTo(arr_coordx[1], arr_coordy[1]);
} else if (i_l == (i - 1)){
arr_l[i_l-1].clear();
arr_l[i_l-1].lineStyle(1,colorl);
arr_l[i_l-1].moveTo(arr_coordx[i_l-1], arr_coordy[i_l-1]);
arr_l[i_l-1].lineTo(arr_coordx[i_l], arr_coordy[i_l]);
arr_l[i_l].clear();
arr_l[i_l].lineStyle(1,colorl);
arr_l[i_l].moveTo(arr_coordx[i_l], arr_coordy[i_l]);
arr_l[i_l].lineTo(arr_coordx[1], arr_coordy[1]);
} else {
arr_l[i_l-1].clear();
arr_l[i_l-1].lineStyle(1,colorl);
arr_l[i_l-1].moveTo(arr_coordx[i_l-1], arr_coordy[i_l-1]);
arr_l[i_l-1].lineTo(arr_coordx[i_l], arr_coordy[i_l]);
arr_l[i_l].clear();
arr_l[i_l].lineStyle(1,colorl);
arr_l[i_l].moveTo(arr_coordx[i_l], arr_coordy[i_l]);
arr_l[i_l].lineTo(arr_coordx[i_l+1], arr_coordy[i_l+1]);
};
};
//Функция рисования последней, завершающей линии
function drawlastline(i_l:Number) : Void {
k = i_l;
arr_l[i_l-1] = linelayer.createEmptyMovieClip("line" + i_l,k);
arr_l[i_l-1].lineStyle(1,colorl);
arr_l[i_l-1].moveTo(arr_coordx[i_l-1], arr_coordy[i_l-1]);
arr_l[i_l-1].lineTo(arr_coordx[1], arr_coordy[1]);
};
//Функция рисования стены. Очищается слой, в котором производится рисование, обнуляются
//массивы координат, индекс, а также становятся невидимыми точки и линии
function createwall():Void {
borderlayer.clear();
walllayer.clear();
var arr_wallcoordx = 0;
var arr_wallcoordy = 0;
wall_i = 1;
for (var n = 2; n<=i; n = n+1) {
arr_p[n-1]._visible = false;
arr_l[n-1]._visible = false;
pointline(arr_coordx[n-1],arr_coordx[n], arr_coordy[n-1], arr_coordy[n]);
};
menu_obj[3].enabled = false;
menu_obj[3]._alpha = 50;
};
//Заполняется массив точек стенки. Для этого вычисляется уравнение каждой прямой
//и все ее точки заносятся в массивы координат стены.
function pointline(x1:Number, x2:Number, y1:Number, y2:Number) {
var k = (y1 - y2)/(x1 - x2);
var b = (y2*x1 - y1*x2)/(x1 - x2);
walllayer.lineStyle(2,0x8a9d88);
if (x1 > x2) {
walllayer.moveTo(x2, (k*x2+b));
for (var n = x2; n <= x1; n = n + 1 ){
arr_wallcoordx[wall_i] = n;
arr_wallcoordy[wall_i] = k*n + b;
wall_i = wall_i + 1;
};
walllayer.lineTo(arr_wallcoordx[wall_i-1], arr_wallcoordy[wall_i-1]);
};
if (x1 < x2) {
walllayer.moveTo(x1, (k*x1+b));
for (var n = x1; n <= x2; n = n +1 ){
arr_wallcoordx[wall_i] = n;
arr_wallcoordy[wall_i] = k*n + b;
wall_i = wall_i + 1;
};
walllayer.lineTo(arr_wallcoordx[wall_i-1], arr_wallcoordy[wall_i-1]);
};
if ((x1 == x2) and (y1<y2)) {
walllayer.moveTo(x1, y1);
for (var n = y1; n <= y2; n = n +1 ){
arr_wallcoordx[wall_i] = x1;
arr_wallcoordy[wall_i] = n;
wall_i = wall_i + 1;
};
walllayer.lineTo(arr_wallcoordx[wall_i-1], arr_wallcoordy[wall_i-1]);
};
if ((x1 == x2) and (y1 > y2)) {
walllayer.moveTo(x1, y2);
for (var n = y2; n <= y1; n = n +1 ){
arr_wallcoordx[wall_i] = x1;
arr_wallcoordy[wall_i] = n;
wall_i = wall_i + 1;
};
walllayer.lineTo(arr_wallcoordx[wall_i-1], arr_wallcoordy[wall_i-1]);
};
drawroom();
};
//Функция для рисования комнаты
function drawroom() : Void {
roomlayer.moveTo(arr_coordx[1], arr_coordy[1]);
roomlayer.beginFill(0xe7e7e7);
for (var n_i = 2; n_i <= i; n_i++) {
roomlayer.lineTo(arr_coordx[n_i], arr_coordy[n_i]);
};
roomlayer.endFill();
};
//Функция создания объекта
function createobj (arr_visible_w_in:Array, arr_visible_h_in:Array) : Void {
tempobj.clear();
var w_in = arr_visible_w_in[select_number];
var h_in = arr_visible_h_in[select_number];
tempobj.beginFill(0x00FF00);
tempobj.moveTo(0, 0);
tempobj.lineTo(w_in, 0);
tempobj.lineTo(w_in, h_in);
tempobj.lineTo(0, h_in);
tempobj.lineTo(0, 0);
tempobj.endFill();
create_obj = true;
tempobj._x = _xmouse;
tempobj._y = _ymouse;
tempobj.startDrag();
};
//Функция создания пиксельного объекта
function creatselectpixl() : Void {
selectpixl.lineStyle(1, 0x000);
selectpixl.moveTo(0,0);
selectpixl.lineTo(1,0);
selectpixl.lineTo(1,1);
selectpixl.lineTo(0,1);
selectpixl.lineTo(0,0);
selectpixl._visible = false;
};
//Функция созджания сетки
function creatnet() : Void {
for (var k=wmin; k<=wmax; k=k+step) {
grid.lineStyle(2,color_net);
grid.moveTo(k, hmin);
grid.lineTo(k, hmin);
grid.lineTo(k, hmax);
}
for (var k=hmin; k<=hmax; k=k+step) {
grid.lineStyle(2,color_net);
grid.moveTo(wmin, k);
grid.lineTo(wmin, k);
grid.lineTo(wmax, k);
}
};
//Функция проверки, отвечающая за столкновения мышки с объектом
function testofhit() : Void {
//rdy_to_select = false;
for (var n_i = 1; n_i <= obj_on_pole; n_i++) {
if (selectpixl.hitTest(_root["obj" + n_i])) {
rdy_to_select = true;
select_num = n_i;
};
};
};
function testofhittrash() : Void {
if (_root["obj" + select_num].hitTest(menu_obj[16])) {
//_root["obj" + select_num].removeMovieClip();
if (select_num == obj_on_pole) {
_root["obj" + select_num].clear();
arr_category[select_num] = undefined;
arr_obj_num[select_num] = undefined;
arr_obj_x[select_num] = undefined;
arr_obj_y[select_num] = undefined;
arr_obj_w[select_num] = undefined;
arr_obj_h[select_num] = undefined;
arr_rotation[select_num] = undefined;
arr_obj_string[select_num] = undefined;
};
obj_on_pole = obj_on_pole - 1;
for (var n_i = select_num; n_i <= obj_on_pole; n_i++) {
arr_category[n_i] = arr_category[n_i + 1];
arr_obj_num[n_i] = arr_obj_num[n_i + 1];
arr_obj_x[n_i] = arr_obj_x[n_i + 1];
arr_obj_y[n_i] = arr_obj_y[n_i + 1];
arr_obj_w[n_i] = arr_obj_w[n_i + 1];
arr_obj_h[n_i] = arr_obj_h[n_i + 1];
arr_rotation[n_i] = arr_rotation[n_i + 1];
arr_obj_string[n_i] = arr_obj_string[n_i + 1];
_root["obj" + (n_i + 1)].duplicateMovieClip("obj" + n_i, 30 + n_i);
_root["obj" + (n_i + 1)].clear();
};
arr_category[obj_on_pole + 1] = undefined;
arr_obj_num[obj_on_pole + 1] = undefined;
arr_obj_x[obj_on_pole + 1] = undefined;
arr_obj_y[obj_on_pole + 1] = undefined;
arr_obj_w[obj_on_pole + 1] = undefined;
arr_obj_h[obj_on_pole + 1] = undefined;
arr_rotation[obj_on_pole + 1] = undefined;
arr_obj_string[obj_on_pole + 1] = undefined;
};
};
function createobjbord(n_i_i) : Void {
borderobj.clear();
borderobj._rotation = 0;
borderobj.lineStyle(1, 0x000);
borderobj.moveTo(0, 0);
borderobj.lineTo(arr_obj_w[n_i_i] + 10, 0);
borderobj.lineTo(arr_obj_w[n_i_i] + 10, arr_obj_h[n_i_i] + 10);
borderobj.lineTo(0, arr_obj_h[n_i_i] + 10);
borderobj.lineTo(0, 0);
trace(arr_obj_w[n_i_i]);
trace(arr_obj_h[n_i_i]);
borderobj._x = _root["obj" + n_i_i]._x - 5;
borderobj._y = _root["obj" + n_i_i]._y - 5;
};
stop();
6. Приложение 2. Руководство оператора
6.1 Аннотация
Настоящее руководство распространяется исключительно на программу и не заменяет учебную, справочную литературу, руководства от производителя ОС и прочие источники информации, освещающие работу с графическим пользовательским интерфейсом операционной системы.
Данное руководство оператора содержит следующие разделы:
Назначение программы
Условия выполнения программы
Выполнение программы
Сообщения оператору
В настоящем руководстве оператора содержатся все необходимые сведения по эксплуатации программного продукта.
6.2 Назначение программы
Данная система разработана с целью повышения удобства создания дизайна интерьера. Это реализуется путем интеграции системы в различные веб-сайты, что позволяет работать с данным продуктом удаленно.
Функция обеспечивает возможность выполнения перечисленных ниже функций:
Создание файла формата *.x3d
Отображение файла формата *.x3d
Добавление объектов
Перемещение созданных объектов по рабочему полю с помощью мыши
Вращение созданных объектов при помощи мыши
Поточечное рисование границ проектируемого помещения.
Создание области установки объектов
Перемещение установленных точек с помощью мыши.
Удаление выбранного объекта.
Очистка рабочей области.
Программа может быть использована как профессионалами, так и пользователями среднего уровня, так как имеет интуитивно понятный интерфейс.
6.3 Условия выполнения программы
6.3.1 Минимальный состав технических средств
В состав технических средств должен входить IBM-совместимый персональный компьютер (ПЭВМ), включающий в себя:
процессор Pentium 4 с тактовой частотой, 2,4 ГГц
оперативную память объемом не менее 256 Мб
мышь или другой манипулятор (графических планшет и т.д.)
6.3.2 Минимальный состав программных средств
В состав программных средств, необходимых для корректного использования системы, входят:
проигрыватель Adobe Flash Player не ниже 8-ой версии
сервер Apache не ниже версии 2.0
обязательная поддержка сервером PHP не ниже 4-ой версии
проигрыватель файлов формата X3D, такие как CosmoPlayer, InstantPlayer, H3DAPI и др.
6.4 Выполнение программы
6.4.1 Загрузка и запуск программы
При использовании системы без подключения к интернет распакуйте архив, содержащий все необходимые файлы, в отдельную папку. Щелкните два раза на файле с именем drawwall.swf, drawwall.exe или drawwall.html.
При использовании системы удаленно необходимо открыть браузер, и ввести в адресной строке адрес веб-ресурса, который использует данную систему.
Для корректного запуска программы убедитесь, что в вашей системе установлен проигрыватель Adobe Flash Player (не ниже 8-ой версии). Если проигрыватель установлен, то на экране появится окно программы (рис.1)
Рис.1
6.4.2 Выполнение программы
А) Поточечное рисование границ проектируемого помещения
Для создания точки необходимо выбрать соответствующий инструмент в меню под номером 2(). После этого переместите курсор мыши в рабочее поле (под номером 10) и нажмите на левую кнопку мыши один раз. Вы увидите, что на рабочем поле появится точка, в указанном вами месте. Для установки следующей точки повторите вышеперечисленные операции. Для создания замкнутой линии необходимо выбрать инструмент под номером 2, навести на первую точку, и нажать на левую кнопку мыши. Контур замкнется, а инструмент под номером 2 перестанет быть активным.
Б) Перемещение установленных точек с помощью мыши
Если в рабочем поле уже имеются точки, то для их перемещения необходимо выбрать инструмент под номером 1 (). Затем, наведите курсор мыши на интересующую вас точку и нажмите левую кнопку мыши. Вокруг точки появиться небольшая рамка, что будет свидетельствовать о ее выделении. Если после нажатия на левую кнопку продолжать ее удерживать, то перемещая указатель мыши по рабочему полю, вы сможете перемещать выделенную вами точку.
В) Создание области установки объектов
Для создания области установки объектов убедитесь, что на рабочем поле вами была нарисована замкнутая линия. Если это так, то для создания области установки объектов необходимо нажать на кнопку меню под номером 3 (). Если все было сделано верно, то вы увидите, как нарисованный вами ранее контур закраситься, а пункты меню под номерами 1 и 2 перестанут быть активными.
Г) Добавление объектов
Для добавления объектов вам необходимо, чтобы была создана область установки объектов. Если это так, то вы можете установить любой имеющийся в системе объект.
Для этого вам необходимо выбрать интересующий вас объект. Нажмите не один из пунктов меню, которые находятся слева (например, номер 14. ). Вы увидите, что на экране отобразиться список объектов, содержащийся в данном разделе. Чтобы пролистать объекты нажмите на одну из кнопок под номером 13 (). Для того, чтобы закрыть раздел необходимо нажать на кнопку под номером 11 (), или выбрать любой другой раздел.
Открыв раздел, вы можете выбрать любой объект, который в нем содержаться. Для этого просто наведите курсор мыши на нужный вам объект и нажмите на левую кнопку мыши. Вы увидите, как объект появиться под курсором повторным щелчком в созданной заранее области установки объектов вы создадите объект в своем проекте.
Д) Перемещение созданных объектов по рабочему полю с помощью мыши
Для перемещения объектов по рабочему полю необходимо выбрать в меню инструмент под номером 5 (). После этого наведите курсор мыши на интересующий вас объект, нажмите на левую кнопку мыши и не отпуская перетащите в любое место рабочего поля.
Е) Вращение созданных объектов при помощи мыши
Для вращения объекта необходимо выбрать в меню инструмент под номером 4 (). После этого наведите курсор мыши на объект, нажмите левую кнопку мыши и не отпуская переместите курсор по вертикальной оси. Вы увидите, как объект поворачивается, реагируя на движения мыши.
Ж) Удаление выбранного объекта
Для этого необходимо выбрать в меню инструмент под номером 5 (). Затем, наведите курсор мыши на интересующий вас объект, нажмите на левую кнопку мыши и не отпуская переместите курсор так, чтобы он оказался над областью удаления, то есть над элементом интерфейса под номером 7 (). Когда курсов будет над областью удаления вы можете отпустить кнопку мыши, и объект удалиться.
З) Очистка рабочей области.
Для этого необходимо выбрать в меню инструмент под номером 6 (). При нажатии, все элементы, содержащиеся в рабочей области, будут удалены (область установки объектов и все объекты). Пункты меню под номерами 1 и 2 станут активными.
И) Создание файла формата *.x3d.
Для создания файла формата *.x3d необходимо, чтобы в рабочей области были созданы область установки объектов и хотя бы один объект. Если это так, то пункт меню под номером 8 станет активным (). При нажатии на этот пункт меню создается требуемый файл, а пункт меню под номером 9 становиться активным.
К) Отображение файла формата *.x3d
Для отображения желаемого файла необходимо, чтобы пункт меню номер 9 был активен (). Если это так, то запуститься проигрыватель, способный воспроизводить файлы формата *.x3d и отобразиться результирующий файл.
6.4.3 Завершение работы программы
Для завершения работы необходимо нажать на пиктограмму «крестик» в верхнем правом углу окна.
7. Список используемой литературы
Практические советы по XML - http://xmlhack.ru/faq. html
Работа с XML Action script - http://blog.browseforart.com/category/ actionscript-30/
Языки веб-программирования - http://www.programmers club.ru/arnold-create-site6/
Autodesk 3ds Max 9 .- http://www.3dmax.ru/articles/3dmax/4/
Хранение данных удаленно - http://www.flash-ripper.com/articles/flash/2002_07_30_localsobject.php#notes
Extensible 3D graphics for web authors - http://www.x3dgraphics.com/examples/X3dForWebAuthors/index.html
Размещено на www.allbest.
Подобные документы
Разработка способа экономного размещения в памяти заданной разреженной таблицы. Разработка процедуры/функции, обеспечивающей доступ к элементам таблицы по номерам строки и имени столбца. Хронометраж выполнения операций чтения и записи элементов в массивы.
лабораторная работа [678,8 K], добавлен 22.12.2011
Использование электронной таблицы как базы данных. Сортировка и фильтрация данных в Microsoft Excel 97. Сортировка - это упорядочение данных по возрастанию или по убыванию. При фильтрации базы отображаются только записи, обладающие нужными свойствами.
реферат [6,6 K], добавлен 17.11.2002
Системный анализ и анализ требований. Концептуальная модель данных. Проектирование логической структуры реляционной базы данных. Даталогическая модель базы данных. Алгоритмы реализации модулей и их реализация (запросы, таблицы, формы, отчеты, макросы).
курсовая работа [1,6 M], добавлен 17.12.2015
Широкое использование компьютерных и информационных технологий. Концепции типов данных. Алгоритмы сортировки одномерных массивов. Описание двумерного массива Паскаля. Методы доступа к элементам массивов. Индексные, динамические и гетерогенные массивы.
курсовая работа [66,3 K], добавлен 07.12.2010
Структура таблицы и типы данных. Ввод данных в ячейки таблицы. Создание запросов на выборку, удаление, обновление и добавление записей, на создание таблицы. Основное различие между отчетами и формами, их назначение. Создание отчетов для базы данных.
курсовая работа [1,9 M], добавлен 17.06.2014
Анализ предметной области. Сравнительный анализ систем визуализации трёхмерных объектов. Обоснование выбора среды программирования. Разработка базы данных. Архитектура программного продукта. Алгоритм шифрования Blowfish с обратной связью по шифр-тексту.
дипломная работа [5,3 M], добавлен 22.11.2015
Выбор средств методологии проектирования базы данных, требования к ее функциональности и возможностям. Выделение информационных объектов и их атрибутов, определение отношений и мощности отношений между объектами. Разработка интерфейса и права доступа.
курсовая работа [658,1 K], добавлен 03.06.2015
Создание реляционной базы данных, запросов, форм и отчетов по БД "Компьютеры", "Таблицы". Создание базы данных, объектов, заполнение таблиц данными, выполнение схемы. Справочно-правовая система "Консультант Плюс". Информационные массивы, разделы и банки.
контрольная работа [4,3 M], добавлен 21.10.2009
Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.
курсовая работа [624,5 K], добавлен 30.05.2019
Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.
контрольная работа [914,3 K], добавлен 26.03.2011