Опубликован: 27.09.2006 | Уровень: для всех | Доступ: свободно | ВУЗ: Московский государственный индустриальный университет
Лекция 13:

Изображение полиэдра

Полный текст проекта

Сначала приведем содержание управляющего файла для утилиты make.

MAKEFILE

# -*- mode: makefile -*-

.PHONY : all doc clean veryclean cube ccc sticks tagl king dragon            \
         x29 apple glass4 torus pear vw bones beeth teapot cow babem

JAVAC      = javac

JAVAFILES  := Xterm.java R3Vector.java Vertex.java Edge.java Facet.java      \
              Polyedr.java Segment.java L1ListSegments.java                  \
              AwtDrawer.java SimpleDrawer.java ShadowDrawer.java             \
              SmartDrawer.java PolyedrTest.java

CLASSFILES := Xterm.class R3Vector.class Vertex.class Edge.class Facet.class \
              Polyedr.class Segment.class L1ListSegments.class               \
              AwtDrawer.class SimpleDrawer.class ShadowDrawer.class          \
              SmartDrawer.class PolyedrTest.class

%.class: %.java
	$(JAVAC) $<

cube:	$(CLASSFILES)
	java PolyedrTest data/cube.geom

ccc:	$(CLASSFILES)
	java PolyedrTest data/ccc.geom

sticks:	$(CLASSFILES)
	java PolyedrTest data/sticks.geom

tagl:	$(CLASSFILES)
	java PolyedrTest data/tagl.geom

king:	$(CLASSFILES)
	java PolyedrTest data/king.geom

dragon:	$(CLASSFILES)
	java PolyedrTest data/dragon.geom

x29:	$(CLASSFILES)
	java PolyedrTest data/x29.geom

apple:	$(CLASSFILES)
	java PolyedrTest data/apple_logo.geom

glass4:	$(CLASSFILES)
	java PolyedrTest data/glass4.geom

torus:	$(CLASSFILES)
	java PolyedrTest data/torus.geom

pear:	$(CLASSFILES)
	java PolyedrTest data/pear.geom

vw:	$(CLASSFILES)
	java PolyedrTest data/vw.geom

bones:	$(CLASSFILES)
	java PolyedrTest data/foot_bones.geom

beeth:	$(CLASSFILES)
	java PolyedrTest data/beethoven.geom

teapot:	$(CLASSFILES)
	java PolyedrTest data/teapot.geom

cow:	$(CLASSFILES)
	java PolyedrTest data/cow.geom

babem:	$(CLASSFILES)
	java PolyedrTest data/babem.geom

doc:
	javadoc -d doc -version -author -private *.java

expand:	
	for i in Makefile *.java; do expand $$i >$$i.expand; done

clean:
	rm -f *.class *.expand

veryclean:
	rm -f *.class *.expand doc/*.html

А вот как выглядят все остальные файлы проекта.

R3Vector.java

/**
 * @author Е.А. Роганов
 * @version 1.1	
 * Класс R3Vector, реализующий вектор (Vector) в пространстве (R3).
 */
public class R3Vector {
    /**
     * Координаты вектора.
     */
     private double x, y, z;

    /**
     * Конструктор вектора, заданного его координатами.
     * @param x X-координата вектора.
     * @param y Y-координата вектора.
     * @param z Z-координата вектора.
     */
    public R3Vector(double x, double y, double z) {
	this.x = x; this.y = y; this.z = z;
    }
    /**
     * Конструктор вектора, координаты которого вводятся с клавиатуры.
     * @exception Exception Исключительная ситуация, возникающая
     * при ошибках ввода координат с клавиатуры.
     */
    public R3Vector() throws Exception {
	x = Xterm.inputDouble("X-коорд. вектора проектирования -> ");
	y = Xterm.inputDouble("Y-коорд. вектора проектирования -> ");
	z = Xterm.inputDouble("Z-коорд. вектора проектирования -> ");
    }
    /**
     * Получить X-координату вектора.
     * @return X-координата вектора.
     */
    public final double getX() {
	return x;
    }
    /**
     * Получить Y-координату вектора.
     * @return Y-координата вектора.
     */
    public final double getY() {
	return y;
    }
    /**
     * Получить Z-координату вектора.
     * @return Z-координата вектора.
     */
    public final double getZ() {
	return z;
    }
     /**
     * Нормировать ненулевой вектор.
     */
    public final R3Vector normalize() {
	double norm = Math.sqrt(x*x+y*y+z*z);
	x /= norm; y /= norm; z /= norm;
	return this;
    }
    /**
     * Найти сумму двух векторов.
     * @param a Первый вектор-слагаемое.
     * @param b Второй вектор-слагаемое.
     * @return Сумма векторов.
     */
    public static R3Vector plus(R3Vector a, R3Vector b) {
	return new R3Vector(a.x+b.x, a.y+b.y, a.z+b.z);
    }
    /**
     * Добавить заданный вектор.
     * @param b Добавляемый вектор.
     * @return Вектор-результат.
     */
    public final R3Vector plus(R3Vector b) {
	x += b.x; y += b.y; z += b.z;
	return this;
    }
    /**
     * Найти разность двух векторов.
     * @param a Вектор-уменьшаемое.
     * @param b Вектор-вычитаемое.
     * @return Разность векторов.
     */
    public static R3Vector minus(R3Vector a, R3Vector b) {
	return new R3Vector(a.x-b.x, a.y-b.y, a.z-b.z);
    }
    /**
     * Вычесть заданный вектор.
     * @param b Вычитаемый вектор.
     * @return Вектор-результат.
     */
    public final R3Vector minus(R3Vector b) {
	x -= b.x; y -= b.y; z -= b.z;
	return this;
    }
    /**
     * Найти произведение вектора на число.
     * @param k Число, на которое умножается вектор.
     * @param a Исходный вектор.
     * @return Вектор-результат.
     */
    public static R3Vector mul(double k, R3Vector a) {
	return new R3Vector(k*a.x, k*a.y, k*a.z);
    }
    /**
     * Умножить вектор на заданное число.
     * @param k Число, на которое умножается вектор.
     * @return Вектор-результат.
     */
    public final R3Vector mul(double k) {
	x *= k; y *= k; z *= k;
	return this;
    }
    /**
     * Найти скалярное произведение векторов.
     * @param a Первый вектор.
     * @param b Второй вектор.
     * @return Скалярное произведение векторов.
     */
    public static double scalMul(R3Vector a, R3Vector b) {
	return a.x*b.x + a.y*b.y + a.z*b.z;
    }
    /**
     * Найти векторное произведение векторов.
     * @param a Первый вектор.
     * @param b Второй вектор.
     * @return Векторное произведение векторов.
     */
    public static R3Vector vectMul(R3Vector a, R3Vector b) {
	return new R3Vector(a.y*b.z-a.z*b.y, a.z*b.x-a.x*b.z, a.x*b.y-a.y*b.x);
    }
}
Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2519103663200watchdog( )../bootstrap.inc:0
23.2524103665664module_invoke( )../bootstrap.inc:967
33.2525103667520call_user_func_array ( )../module.inc:462
43.2525103667856devel_watchdog( )../module.inc:462
53.2526103668704decode_entities( )../devel.module:382
63.2527103670624drupal_error_handler( )../devel.module:340
73.2527103674232watchdog( )../common.inc:663
83.2527103676296module_invoke( )../bootstrap.inc:967
93.2528103678152call_user_func_array ( )../module.inc:462
103.2528103678488devel_watchdog( )../module.inc:462
113.2528103679184decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2519103663200watchdog( )../bootstrap.inc:0
23.2524103665664module_invoke( )../bootstrap.inc:967
33.2525103667520call_user_func_array ( )../module.inc:462
43.2525103667856devel_watchdog( )../module.inc:462
53.2526103668704decode_entities( )../devel.module:382
63.2527103670624drupal_error_handler( )../devel.module:340
73.2527103674232watchdog( )../common.inc:663
83.2527103676296module_invoke( )../bootstrap.inc:967
93.2528103678152call_user_func_array ( )../module.inc:462
103.2528103678488devel_watchdog( )../module.inc:462
113.2528103679184decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2519103663200watchdog( )../bootstrap.inc:0
23.2524103665664module_invoke( )../bootstrap.inc:967
33.2525103667520call_user_func_array ( )../module.inc:462
43.2525103667856devel_watchdog( )../module.inc:462
53.2526103668704decode_entities( )../devel.module:382
63.2538103670816drupal_error_handler( )../devel.module:340
73.2539103674504watchdog( )../common.inc:663
83.2539103676568module_invoke( )../bootstrap.inc:967
93.2539103678424call_user_func_array ( )../module.inc:462
103.2539103678760devel_watchdog( )../module.inc:462
113.2540103679536decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2519103663200watchdog( )../bootstrap.inc:0
23.2524103665664module_invoke( )../bootstrap.inc:967
33.2525103667520call_user_func_array ( )../module.inc:462
43.2525103667856devel_watchdog( )../module.inc:462
53.2526103668704decode_entities( )../devel.module:382
63.2538103670816drupal_error_handler( )../devel.module:340
73.2539103674504watchdog( )../common.inc:663
83.2539103676568module_invoke( )../bootstrap.inc:967
93.2539103678424call_user_func_array ( )../module.inc:462
103.2539103678760devel_watchdog( )../module.inc:462
113.2540103679536decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2550103663744watchdog( )../bootstrap.inc:0
23.2551103665808module_invoke( )../bootstrap.inc:967
33.2551103667664call_user_func_array ( )../module.inc:462
43.2551103668000devel_watchdog( )../module.inc:462
53.2552103668704decode_entities( )../devel.module:382
63.2552103670624drupal_error_handler( )../devel.module:340
73.2552103674232watchdog( )../common.inc:663
83.2552103676296module_invoke( )../bootstrap.inc:967
93.2552103678152call_user_func_array ( )../module.inc:462
103.2553103678488devel_watchdog( )../module.inc:462
113.2553103679184decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2550103663744watchdog( )../bootstrap.inc:0
23.2551103665808module_invoke( )../bootstrap.inc:967
33.2551103667664call_user_func_array ( )../module.inc:462
43.2551103668000devel_watchdog( )../module.inc:462
53.2552103668704decode_entities( )../devel.module:382
63.2552103670624drupal_error_handler( )../devel.module:340
73.2552103674232watchdog( )../common.inc:663
83.2552103676296module_invoke( )../bootstrap.inc:967
93.2552103678152call_user_func_array ( )../module.inc:462
103.2553103678488devel_watchdog( )../module.inc:462
113.2553103679184decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2550103663744watchdog( )../bootstrap.inc:0
23.2551103665808module_invoke( )../bootstrap.inc:967
33.2551103667664call_user_func_array ( )../module.inc:462
43.2551103668000devel_watchdog( )../module.inc:462
53.2552103668704decode_entities( )../devel.module:382
63.2561103670816drupal_error_handler( )../devel.module:340
73.2561103674504watchdog( )../common.inc:663
83.2562103676568module_invoke( )../bootstrap.inc:967
93.2562103678424call_user_func_array ( )../module.inc:462
103.2562103678760devel_watchdog( )../module.inc:462
113.2562103679536decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
13.2550103663744watchdog( )../bootstrap.inc:0
23.2551103665808module_invoke( )../bootstrap.inc:967
33.2551103667664call_user_func_array ( )../module.inc:462
43.2551103668000devel_watchdog( )../module.inc:462
53.2552103668704decode_entities( )../devel.module:382
63.2561103670816drupal_error_handler( )../devel.module:340
73.2561103674504watchdog( )../common.inc:663
83.2562103676568module_invoke( )../bootstrap.inc:967
93.2562103678424call_user_func_array ( )../module.inc:462
103.2562103678760devel_watchdog( )../module.inc:462
113.2562103679536decode_entities( )../devel.module:382