master math word problems 1.6
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3251
Master Math Word Problems 1.6
Master Math Word Problems can help sharpen skills through practice. more>>
Solving word problems is an area where elementary students overwhelmingly display difficulties. Master Math Word Problems program can help sharpen skills through practice. Third through fifth graders learn to watch for key words and translate those into mathematical operations.
Students can learn new math skills, practice logic, get extended practice with word problems, but most of all they learn that they must read the problem. With regular practice your students may become master math word problem solvers.
Download and try out Master Math Word Problems.
<<lessStudents can learn new math skills, practice logic, get extended practice with word problems, but most of all they learn that they must read the problem. With regular practice your students may become master math word problem solvers.
Download and try out Master Math Word Problems.
Download (1.2MB)
Added: 2006-05-17 License: GPL (GNU General Public License) Price: $12
1262 downloads
Master Combat Control Program 0.9.4
Master Combat Control Program is an improved clone of the Shadowrun-Assistent program. more>>
Master Combat Control Program is an improved clone of the "Shadowrun-Assistent" program (as found on shadowrun.de).
Its main goals are better usability, minor feature improvements, and i18n. It constists of a character editor, an initiative manager, and a dice roller.
Enhancements:
- Due to popular demand, the directory where the configuration files are put is now configurable via the "-config" option.
- When first running the program it complained about missing files, which are created on shutdown, so this was changed.
- added parsing of command line parameter "-config";
- all error messages internationalized;
- added "readme.txt"
<<lessIts main goals are better usability, minor feature improvements, and i18n. It constists of a character editor, an initiative manager, and a dice roller.
Enhancements:
- Due to popular demand, the directory where the configuration files are put is now configurable via the "-config" option.
- When first running the program it complained about missing files, which are created on shutdown, so this was changed.
- added parsing of command line parameter "-config";
- all error messages internationalized;
- added "readme.txt"
Download (0.14MB)
Added: 2005-07-22 License: GPL (GNU General Public License) Price:
1564 downloads
Unnamed Math Program 0.8.6
Ump is a graphical, easy to use math program, which works with complex numbers, matrices, functions and much more. more>>
Ump is a program in which all sorts of calculations can be done, from the simplest to the more advanced. It handles complex numbers and matrices of those.
The complex numbers are built up by either floating point values or ratios of arbitrary sized integers. Ump also draws graphs, ordinary, polar, and parameter, which is done through an easy to use user interface.
Unnamed Math Program is also possible to write your own functions using the built in editor.
<<lessThe complex numbers are built up by either floating point values or ratios of arbitrary sized integers. Ump also draws graphs, ordinary, polar, and parameter, which is done through an easy to use user interface.
Unnamed Math Program is also possible to write your own functions using the built in editor.
Download (0.14MB)
Added: 2007-04-16 License: GPL (GNU General Public License) Price:
921 downloads
Math Objects 0.1.3
Math Objects is a math template library for C++ using generic programming techniques. more>>
Math Objects is a math template library written in C++ using generic programming techniques. In order to use the "Math Objects" library, the user only has to include the header files he needs (e.g. Matrix.h, Polynomial.h etc.).
In order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
<<lessIn order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
Download (0.28MB)
Added: 2006-02-21 License: GPL (GNU General Public License) Price:
1343 downloads
Math::Complex 1.37
Math::Complex is a Perl module with complex numbers and associated mathematical functions. more>>
Math::Complex is a Perl module with complex numbers and associated mathematical functions.
SYNOPSIS
use Math::Complex;
$z = Math::Complex->make(5, 6);
$t = 4 - 3*i + $z;
$j = cplxe(1, 2*pi/3);
<<lessSYNOPSIS
use Math::Complex;
$z = Math::Complex->make(5, 6);
$t = 4 - 3*i + $z;
$j = cplxe(1, 2*pi/3);
Download (0.032MB)
Added: 2007-07-04 License: Perl Artistic License Price:
843 downloads
Zombie Master Dedicated Server 1.1.2
Zombie Master is a multiplayer survival horror FPS/RTS mod for Half-Life 2. more>>
Zombie Master project is a multiplayer survival horror FPS/RTS mod for Half-Life 2. A team of FPS-playing humans attempts to complete map-specific objectives while an RTS player controls the zombie horde with only one goal: death to all humans.
He is the Zombie Master.
Enhancements:
- [fix] Weapons were sometimes hard to pick up
- [fix] Fast shooting exploits in shotgun and rifle
- [tweak] Health indication in player identification display
- [tweak] ZM resource limit server setting zm_resource_limit (default 4000)
- [fix] Team changes (including to spectator after death) had erratic results
- [feature] Muting players
- [tweak] Weapon flags failed to reset in some situations after forcehuman/forcemaster team switching
- [fix] ZM preference window came up when the ZM camera toggled
- [fix] Zombie spawns could still be clicked when inactive
- [fix] Voting for roundrestart could be spammed
- [fix] DOTD chalkboard weirded out
- Plus minor fixes to the maps.
As usual, if your game goes horridly wrong after patching, try reinstalling with the 1.1.2 full installer.
UPDATE: If you experience the spectator bug after patching to 1.1.2, it is recommended you do a clean install using the full 1.1.2 installer.
<<lessHe is the Zombie Master.
Enhancements:
- [fix] Weapons were sometimes hard to pick up
- [fix] Fast shooting exploits in shotgun and rifle
- [tweak] Health indication in player identification display
- [tweak] ZM resource limit server setting zm_resource_limit (default 4000)
- [fix] Team changes (including to spectator after death) had erratic results
- [feature] Muting players
- [tweak] Weapon flags failed to reset in some situations after forcehuman/forcemaster team switching
- [fix] ZM preference window came up when the ZM camera toggled
- [fix] Zombie spawns could still be clicked when inactive
- [fix] Voting for roundrestart could be spammed
- [fix] DOTD chalkboard weirded out
- Plus minor fixes to the maps.
As usual, if your game goes horridly wrong after patching, try reinstalling with the 1.1.2 full installer.
UPDATE: If you experience the spectator bug after patching to 1.1.2, it is recommended you do a clean install using the full 1.1.2 installer.
Download (82.3MB)
Added: 2007-06-26 License: Freeware Price:
899 downloads
PasswordMaker 1.6.2
PasswordMaker is a small, lightweight, free, extension for Internet Explorer, Firefox, Mozilla, Netscape, Flock. more>>
PasswordMaker project is a small, lightweight, free, extension for Internet Explorer, Firefox, Mozilla, Netscape, Flock, and Yahoo! Widgets which creates unique, secure passwords that are very easy for you to retrieve but no one else. Nothing is stored anywhere, anytime, so theres nothing to be hacked, lost, or stolen.
How It Works:
You provide PasswordMaker two pieces of information: a "master password" -- that one, single password you like -- and the URL of the website requiring a password. Through the magic of one-way hash algorithms, PasswordMaker calculates a message digest, also known as a digital fingerprint, which can be used as your password for the website.
Although one-way hash algorithms have a number of interesting characteristics, the one capitalized by PasswordMaker is that the resulting fingerprint (password) does "not reveal anything about the input that was used to generate it." In other words, if someone has one or more of your generated passwords, it is computationally infeasible for him to derive your master password or to calculate your other passwords. Computationally infeasible means even computers like this wont help!
<<lessHow It Works:
You provide PasswordMaker two pieces of information: a "master password" -- that one, single password you like -- and the URL of the website requiring a password. Through the magic of one-way hash algorithms, PasswordMaker calculates a message digest, also known as a digital fingerprint, which can be used as your password for the website.
Although one-way hash algorithms have a number of interesting characteristics, the one capitalized by PasswordMaker is that the resulting fingerprint (password) does "not reveal anything about the input that was used to generate it." In other words, if someone has one or more of your generated passwords, it is computationally infeasible for him to derive your master password or to calculate your other passwords. Computationally infeasible means even computers like this wont help!
Download (0.16MB)
Added: 2007-07-23 License: GPL (GNU General Public License) Price:
1855 downloads
Math::Roman 1.07
Math::Roman contains arbitrary sized Roman numbers and conversion from and to Arabic. more>>
Math::Roman contains arbitrary sized Roman numbers and conversion from and to Arabic.
SYNOPSIS
use Math::Roman qw(roman);
$a = new Math::Roman MCMLXXIII; # 1973
$b = roman(MCMLXI); # 1961
print $a - $b,"n"; # prints XII
$d = Math::Roman->bzero(); #
$d++; # I
$d += 1998; # MCMXCIX
$d -= MCM; # XCIX
print "$dn"; # string "MCMIC"
print $d->as_number(),"n"; # Math::BigInt "+1999"
<<lessSYNOPSIS
use Math::Roman qw(roman);
$a = new Math::Roman MCMLXXIII; # 1973
$b = roman(MCMLXI); # 1961
print $a - $b,"n"; # prints XII
$d = Math::Roman->bzero(); #
$d++; # I
$d += 1998; # MCMXCIX
$d -= MCM; # XCIX
print "$dn"; # string "MCMIC"
print $d->as_number(),"n"; # Math::BigInt "+1999"
Download (0.010MB)
Added: 2007-08-08 License: Perl Artistic License Price:
808 downloads
Multicasting Master-Slave Network Filesystem 0.8
Multicasting Master-Slave Network Filesystem is a method of distributing an entire filesystem among several machines. more>>
Network technology evolves quickly, but available bandwidths are still not sufficient for fast transfers of big files to a bunch of clients (for example populating operating systems installation images).
This paper describes Multicasting Master-Slave Network Filesystem (mmsnfs) -- a new method of distributing entire filesystem among several client-machines simultaneously and efficiently.
Moreover it provides mechanisms for modifying distibuted filesystem structure reliably and securing it against introducing inconsistencies. It is designed to be used in small networks of similarly-configured machines, for instance university labs or internet cafes.
<<lessThis paper describes Multicasting Master-Slave Network Filesystem (mmsnfs) -- a new method of distributing entire filesystem among several client-machines simultaneously and efficiently.
Moreover it provides mechanisms for modifying distibuted filesystem structure reliably and securing it against introducing inconsistencies. It is designed to be used in small networks of similarly-configured machines, for instance university labs or internet cafes.
Download (0.055MB)
Added: 2005-04-08 License: GPL (GNU General Public License) Price:
1668 downloads
Password Hasher 1.0.4
Password Hasher enables a good security practice. more>>
Password Hasher enables a good security practice.
What good security practice demands:
- Strong passwords that are hard to guess.
- Different passwords at each site.
- Periodically changing existing passwords.
Why you probably arent practicing good security:
- Strong passwords are difficult to remember.
- Juggling a multitude of passwords is a pain.
- Updating passwords compounds the memorization problem.
Main features:
- Automatically generates strong passwords.
- One master key produces different passwords at many sites.
- Quickly upgrade passwords by "bumping" the site tag.
- Upgrade a master key without updating all sites at once.
- Supports different length passwords.
- Supports special requirements, such as digits and punctuation.
- Supports restricting a hash word to not use special characters. (New!)
- Saves all data to the browsers secure password database.
- Generates a portable HTML page with your site tags and option settings that allows you to generate your hash words in any browser on any machine without the extension installed. (New!)
- Can add marker buttons to unmask passwords on any web site. (New!)
- Extremely simple to use!
<<lessWhat good security practice demands:
- Strong passwords that are hard to guess.
- Different passwords at each site.
- Periodically changing existing passwords.
Why you probably arent practicing good security:
- Strong passwords are difficult to remember.
- Juggling a multitude of passwords is a pain.
- Updating passwords compounds the memorization problem.
Main features:
- Automatically generates strong passwords.
- One master key produces different passwords at many sites.
- Quickly upgrade passwords by "bumping" the site tag.
- Upgrade a master key without updating all sites at once.
- Supports different length passwords.
- Supports special requirements, such as digits and punctuation.
- Supports restricting a hash word to not use special characters. (New!)
- Saves all data to the browsers secure password database.
- Generates a portable HTML page with your site tags and option settings that allows you to generate your hash words in any browser on any machine without the extension installed. (New!)
- Can add marker buttons to unmask passwords on any web site. (New!)
- Extremely simple to use!
Download (0.058MB)
Added: 2007-04-07 License: MPL (Mozilla Public License) Price:
1028 downloads
Math::NoCarry 1.10
Math::NoCarry is a Perl extension for no carry arithmetic. more>>
Math::NoCarry is a Perl extension for no carry arithmetic.
SYNOPSIS
use Math::NoCarry;
my $sum = Math::NoCarry::add( 123, 456 );
my $difference = Math::NoCarry::subtract( 123, 456 );
my $product = Math::NoCarry::multiply( 123, 456 );
No carry arithmetic doesnt allow you to carry digits to the next column. For example, if you add 8 and 4, you normally expect the answer to be 12, but that 1 digit is a carry. In no carry arithmetic you cant do that, so the sum of 8 and 4 is just 2. In effect, this is addition modulo 10 in each column. I discard all of the carry digits in this example:
1234
+ 5678
------
6802
For multiplication, the result of pair-wise multiplication of digits is the modulo 10 value of their normal, everyday multiplication.
123
x 456
-----
8 6 x 3
2 6 x 2
6 6 x 1
5 5 x 3
0 5 x 2
5 5 x 1
2 4 x 3
8 4 x 2
+ 4 4 x 1
-------
43878
Since multiplication and subtraction are actually types of additions, you can multiply and subtract like this as well.
No carry arithmetic is both associative and commutative.
<<lessSYNOPSIS
use Math::NoCarry;
my $sum = Math::NoCarry::add( 123, 456 );
my $difference = Math::NoCarry::subtract( 123, 456 );
my $product = Math::NoCarry::multiply( 123, 456 );
No carry arithmetic doesnt allow you to carry digits to the next column. For example, if you add 8 and 4, you normally expect the answer to be 12, but that 1 digit is a carry. In no carry arithmetic you cant do that, so the sum of 8 and 4 is just 2. In effect, this is addition modulo 10 in each column. I discard all of the carry digits in this example:
1234
+ 5678
------
6802
For multiplication, the result of pair-wise multiplication of digits is the modulo 10 value of their normal, everyday multiplication.
123
x 456
-----
8 6 x 3
2 6 x 2
6 6 x 1
5 5 x 3
0 5 x 2
5 5 x 1
2 4 x 3
8 4 x 2
+ 4 4 x 1
-------
43878
Since multiplication and subtraction are actually types of additions, you can multiply and subtract like this as well.
No carry arithmetic is both associative and commutative.
Download (0.005MB)
Added: 2007-08-08 License: Perl Artistic License Price:
807 downloads
Math::ODE 0.03
Math::ODE Perl module allows you to solve N-th Order Ordinary Differential Equations with as little pain as possible. more>>
Math::ODE Perl module allows you to solve N-th Order Ordinary Differential Equations with as little pain as possible.
Currently, only IVPs (initial value problems) are supported, but native support for BVPs (boundary value problems) may be added in the future. To solve N-th order equations, you must first turn it into a system of N first order equations, as in MATLAB.
<<lessCurrently, only IVPs (initial value problems) are supported, but native support for BVPs (boundary value problems) may be added in the future. To solve N-th order equations, you must first turn it into a system of N first order equations, as in MATLAB.
Download (0.005MB)
Added: 2007-06-13 License: GPL (GNU General Public License) Price:
867 downloads
Math::RPN 1.08
RPN is a Perl extension for Reverse Polish Math Expression Evaluation. more>>
RPN is a Perl extension for Reverse Polish Math Expression Evaluation.
SYNOPSIS
use Math::RPN;
$value=rpn(expr...);
@array=rpn(expr...);
expr... is one or more scalars or lists of scalars which contain
RPN expressions. An RPN expression is a series of numbers and/or
operators separated by commas. (commas are only required within
scalars).
The rpn function will take a scalar or list of sclars which contain an RPN expression as a set of comma delimited values and operators, and return the result or stack, depending on context. If the function is called in an array context, it will return the entire remaining stack. If it is called in a scalar context, it will return the top item of the stack. In a scalar context, if more than one value remains on the stack, a warning will be sent to STDERR.
In the event of an error, an error message will be sent to STDERR, and rpn will return undef.
The expression can contain any combination of values and operators. Any token which is not an operator is assumed to be a value to be pushed onto the stack.
An explanation of Reverse Polish Notation is beyond the scope of this document, but it I will describe it briefly as a stack-based way of writing mathematical expressions. This has the advantage of eliminating the need for parenthesis and simplifying parsing for computers vs. normal algebraic notation at a slight cost in the ability of humans to easily comprehend the expressions.
This evaluator works by cycling through the expression from left to right. As each token is encountered, it is checked against the list of operators. If it matches, then a check is performed for stack underflow.
If the stack has not underflowed, the operation is performed by removing the required number of operands from the top of the stack. The result is then pushed on to the stack. Operations for which order is significant (-,/,%,etc.) are processed such that the top item on the stack is treated as the right operand, and the next item down is treated as the left operand. Thus, "5,3,-" would yield 2, not -2. If the token does not match any of the known operators, the token is blindly pushed onto the stack. As a result, one can produce unexpected results. For example, the expression "5,3,grandma,+,*" would produce 15 because 5*(3+0) is how it would end up evaluated. That is, 5 would be pushed onto the stack, then 3, then "grandma". Next, + is evaluated, so 3+"grandma" is evaluated. PERL evaluates "grandma" to be numerically 0, so 3 is pushed back onto the stack. Next, the * multiplies the top two items of the stack [5][3], producing 15, which is pushed back onto the stack.
<<lessSYNOPSIS
use Math::RPN;
$value=rpn(expr...);
@array=rpn(expr...);
expr... is one or more scalars or lists of scalars which contain
RPN expressions. An RPN expression is a series of numbers and/or
operators separated by commas. (commas are only required within
scalars).
The rpn function will take a scalar or list of sclars which contain an RPN expression as a set of comma delimited values and operators, and return the result or stack, depending on context. If the function is called in an array context, it will return the entire remaining stack. If it is called in a scalar context, it will return the top item of the stack. In a scalar context, if more than one value remains on the stack, a warning will be sent to STDERR.
In the event of an error, an error message will be sent to STDERR, and rpn will return undef.
The expression can contain any combination of values and operators. Any token which is not an operator is assumed to be a value to be pushed onto the stack.
An explanation of Reverse Polish Notation is beyond the scope of this document, but it I will describe it briefly as a stack-based way of writing mathematical expressions. This has the advantage of eliminating the need for parenthesis and simplifying parsing for computers vs. normal algebraic notation at a slight cost in the ability of humans to easily comprehend the expressions.
This evaluator works by cycling through the expression from left to right. As each token is encountered, it is checked against the list of operators. If it matches, then a check is performed for stack underflow.
If the stack has not underflowed, the operation is performed by removing the required number of operands from the top of the stack. The result is then pushed on to the stack. Operations for which order is significant (-,/,%,etc.) are processed such that the top item on the stack is treated as the right operand, and the next item down is treated as the left operand. Thus, "5,3,-" would yield 2, not -2. If the token does not match any of the known operators, the token is blindly pushed onto the stack. As a result, one can produce unexpected results. For example, the expression "5,3,grandma,+,*" would produce 15 because 5*(3+0) is how it would end up evaluated. That is, 5 would be pushed onto the stack, then 3, then "grandma". Next, + is evaluated, so 3+"grandma" is evaluated. PERL evaluates "grandma" to be numerically 0, so 3 is pushed back onto the stack. Next, the * multiplies the top two items of the stack [5][3], producing 15, which is pushed back onto the stack.
Download (0.008MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
ISO Master 1.0
ISO Master is an open-source, graphical CD image editor that runs on Linux. more>>
ISO Master is an open-source, graphical CD image editor that runs on Linux; and bkisofs, the underlying library used for reading, modifying and writing ISO images.
The hard part of this project is the library for working with ISOs (bkisofs). My hope is that people will like this library enough to make their own GUIs using it. So my choice of widget set (GTK, that is) will not necessarily annoy too many people.
Main features:
- Display file/directory contents of the image and and the regular filesystem in two panels and be able to navigate them.
- Display file sizes for files on image/filesystem.
- Sort by name or by size
- Select any number of items in the file browsers.
- Extract selected from image to the filesystem
- Delete selected from image.
- Add selected from filesystem to image.
- Save modified image.
- Create image from scratch.
Enhancements:
- Usability and performance improvements.
- 10 new translations.
- A bug that sometimes caused corrupt ISOs to be written has been fixed.
<<lessThe hard part of this project is the library for working with ISOs (bkisofs). My hope is that people will like this library enough to make their own GUIs using it. So my choice of widget set (GTK, that is) will not necessarily annoy too many people.
Main features:
- Display file/directory contents of the image and and the regular filesystem in two panels and be able to navigate them.
- Display file sizes for files on image/filesystem.
- Sort by name or by size
- Select any number of items in the file browsers.
- Extract selected from image to the filesystem
- Delete selected from image.
- Add selected from filesystem to image.
- Save modified image.
- Create image from scratch.
Enhancements:
- Usability and performance improvements.
- 10 new translations.
- A bug that sometimes caused corrupt ISOs to be written has been fixed.
Download (0.20MB)
Added: 2007-06-11 License: GPL (GNU General Public License) Price:
1093 downloads
Math::Zap::Triangle 1.07
Math::Zap::Triangle module can build triangles in 3D space. more>>
Math::Zap::Triangle module can build triangles in 3D space.
Synopsis
Example t/triangle.t
#_ Triangle ___________________________________________________________
# Test 3d triangles
# philiprbrenan@yahoo.com, 2004, Perl License
#______________________________________________________________________
use Math::Zap::Vector;
use Math::Zap::Vector2;
use Math::Zap::Triangle;
use Test::Simple tests=>25;
$t = triangle
(vector( 0, 0, 0),
vector( 0, 0, 4),
vector( 4, 0, 0),
);
$u = triangle
(vector( 0, 0, 0),
vector( 0, 1, 4),
vector( 4, 1, 0),
);
$T = triangle
(vector( 0, 1, 0),
vector( 0, 1, 1),
vector( 1, 1, 0),
);
$c = vector(1, 1, 1);
#_ Triangle ___________________________________________________________
# Distance to plane
#______________________________________________________________________
ok($t->distance($c) == 1, Distance to plane);
ok($T->distance($c) == 0, Distance to plane);
ok($t->distance(2*$c) == 2, Distance to plane);
ok($t->distanceToPlaneAlongLine(vector(0,-1,0), vector(0,1,0)) == 1, Distance to plane towards a point);
ok($T->distanceToPlaneAlongLine(vector(0,-1,0), vector(0,1,0)) == 2, Distance to plane towards a point);
#_ Triangle ___________________________________________________________
# Permute the points of a triangle
#______________________________________________________________________
ok($t->permute == $t, Permute 1);
ok($t->permute->permute == $t, Permute 2);
ok($t->permute->permute->permute == $t, Permute 3);
#_ Triangle ___________________________________________________________
# Intersection of a line with a plane defined by a triangle
#______________________________________________________________________
#ok($t->intersection($c, vector(1, -1, 1)) == vector(1, 0, 1), Intersection of line with plane);
#ok($t->intersection($c, vector(-1, -1, -1)) == vector(0, 0, 0), Intersection of line with plane);
#_ Triangle ___________________________________________________________
# Test whether a point is in front or behind a plane relative to another
# point
#______________________________________________________________________
ok($t->frontInBehind($c, vector(1, 0.5, 1)) == +1, Front);
ok($t->frontInBehind($c, vector(1, 0, 1)) == 0, In);
ok($t->frontInBehind($c, vector(1, -0.5, 1)) == -1, Behind);
#_ Triangle ___________________________________________________________
# Parallel
#______________________________________________________________________
ok($t->parallel($T) == 1, Parallel);
ok($t->parallel($u) == 0, Not Parallel);
#_ Triangle ___________________________________________________________
# Coplanar
#______________________________________________________________________
#ok($t->coplanar($t) == 1, Coplanar);
#ok($t->coplanar($u) == 0, Not coplanar);
#ok($t->coplanar($T) == 0, Not coplanar);
#_ Triangle ___________________________________________________________
# Project one triangle onto another
#______________________________________________________________________
$p = vector(0, 2, 0);
$s = $t->project($T, $p);
ok($s == triangle
(vector(0, 0, 2),
vector(0.5, 0, 2),
vector(0, 0.5, 2),
), Projection of corner 3);
#_ Triangle ___________________________________________________________
# Convert space to plane coordinates and vice versa
#______________________________________________________________________
ok($t->convertSpaceToPlane(vector(2, 2, 2)) == vector(0.5,0.5,2), Space to Plane);
ok($t->convertPlaneToSpace(vector2(0.5, 0.5)) == vector(2, 0, 2), Plane to Space);
#_ Triangle ___________________________________________________________
# Divide
#______________________________________________________________________
$it = triangle # Intersects t
(vector( 0, -1, 2),
vector( 0, 2, 2),
vector( 3, 2, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[1] == triangle(vector(0, 2, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[2] == triangle(vector(0, 2, 2), vector(1, 0, 2), vector(3, 2, 2)));
$it = triangle # Intersects t
(vector( 3, 2, 2),
vector( 0, 2, 2),
vector( 0, -1, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[1] == triangle(vector(3, 2, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[2] == triangle(vector(3, 2, 2), vector(0, 0, 2), vector(0, 2, 2)));
$it = triangle # Intersects t
(vector( 3, 2, 2),
vector( 0, -1, 2),
vector( 0, 2, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[1] == triangle(vector(3, 2, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[2] == triangle(vector(3, 2, 2), vector(0, 0, 2), vector(0, 2, 2)));
<<lessSynopsis
Example t/triangle.t
#_ Triangle ___________________________________________________________
# Test 3d triangles
# philiprbrenan@yahoo.com, 2004, Perl License
#______________________________________________________________________
use Math::Zap::Vector;
use Math::Zap::Vector2;
use Math::Zap::Triangle;
use Test::Simple tests=>25;
$t = triangle
(vector( 0, 0, 0),
vector( 0, 0, 4),
vector( 4, 0, 0),
);
$u = triangle
(vector( 0, 0, 0),
vector( 0, 1, 4),
vector( 4, 1, 0),
);
$T = triangle
(vector( 0, 1, 0),
vector( 0, 1, 1),
vector( 1, 1, 0),
);
$c = vector(1, 1, 1);
#_ Triangle ___________________________________________________________
# Distance to plane
#______________________________________________________________________
ok($t->distance($c) == 1, Distance to plane);
ok($T->distance($c) == 0, Distance to plane);
ok($t->distance(2*$c) == 2, Distance to plane);
ok($t->distanceToPlaneAlongLine(vector(0,-1,0), vector(0,1,0)) == 1, Distance to plane towards a point);
ok($T->distanceToPlaneAlongLine(vector(0,-1,0), vector(0,1,0)) == 2, Distance to plane towards a point);
#_ Triangle ___________________________________________________________
# Permute the points of a triangle
#______________________________________________________________________
ok($t->permute == $t, Permute 1);
ok($t->permute->permute == $t, Permute 2);
ok($t->permute->permute->permute == $t, Permute 3);
#_ Triangle ___________________________________________________________
# Intersection of a line with a plane defined by a triangle
#______________________________________________________________________
#ok($t->intersection($c, vector(1, -1, 1)) == vector(1, 0, 1), Intersection of line with plane);
#ok($t->intersection($c, vector(-1, -1, -1)) == vector(0, 0, 0), Intersection of line with plane);
#_ Triangle ___________________________________________________________
# Test whether a point is in front or behind a plane relative to another
# point
#______________________________________________________________________
ok($t->frontInBehind($c, vector(1, 0.5, 1)) == +1, Front);
ok($t->frontInBehind($c, vector(1, 0, 1)) == 0, In);
ok($t->frontInBehind($c, vector(1, -0.5, 1)) == -1, Behind);
#_ Triangle ___________________________________________________________
# Parallel
#______________________________________________________________________
ok($t->parallel($T) == 1, Parallel);
ok($t->parallel($u) == 0, Not Parallel);
#_ Triangle ___________________________________________________________
# Coplanar
#______________________________________________________________________
#ok($t->coplanar($t) == 1, Coplanar);
#ok($t->coplanar($u) == 0, Not coplanar);
#ok($t->coplanar($T) == 0, Not coplanar);
#_ Triangle ___________________________________________________________
# Project one triangle onto another
#______________________________________________________________________
$p = vector(0, 2, 0);
$s = $t->project($T, $p);
ok($s == triangle
(vector(0, 0, 2),
vector(0.5, 0, 2),
vector(0, 0.5, 2),
), Projection of corner 3);
#_ Triangle ___________________________________________________________
# Convert space to plane coordinates and vice versa
#______________________________________________________________________
ok($t->convertSpaceToPlane(vector(2, 2, 2)) == vector(0.5,0.5,2), Space to Plane);
ok($t->convertPlaneToSpace(vector2(0.5, 0.5)) == vector(2, 0, 2), Plane to Space);
#_ Triangle ___________________________________________________________
# Divide
#______________________________________________________________________
$it = triangle # Intersects t
(vector( 0, -1, 2),
vector( 0, 2, 2),
vector( 3, 2, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[1] == triangle(vector(0, 2, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[2] == triangle(vector(0, 2, 2), vector(1, 0, 2), vector(3, 2, 2)));
$it = triangle # Intersects t
(vector( 3, 2, 2),
vector( 0, 2, 2),
vector( 0, -1, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(0, 0, 2), vector(1, 0, 2)));
ok($d[1] == triangle(vector(3, 2, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[2] == triangle(vector(3, 2, 2), vector(0, 0, 2), vector(0, 2, 2)));
$it = triangle # Intersects t
(vector( 3, 2, 2),
vector( 0, -1, 2),
vector( 0, 2, 2),
);
@d = $t->divide($it);
ok($d[0] == triangle(vector(0, -1, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[1] == triangle(vector(3, 2, 2), vector(1, 0, 2), vector(0, 0, 2)));
ok($d[2] == triangle(vector(3, 2, 2), vector(0, 0, 2), vector(0, 2, 2)));
Download (0.062MB)
Added: 2007-07-19 License: Perl Artistic License Price:
827 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above master math word problems 1.6 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed