HTML and CSS Reference
In-Depth Information
Chapter 14
Law of cosines
a
2
= b
2
+ c
2
- 2
×
b
×
c
×
cos A
b
2
= a
2
+ c
2
- 2
×
a
×
c
×
cos B
c
2
= a
2
+ b
2
- 2
×
a
×
b
×
cos C
Law of cosines in JavaScript
var A = Math.acos((b * b + c * c - a * a) / (2 * b * c)),
B = Math.acos((a * a + c * c - b * b) / (2 * a * c)),
C = Math.acos((a * a + b * b - c * c) / (2 * a * b));
Chapter 15
Basic perspective
scale = fl / (fl + zpos);
object.scaleX = object.scaleY = scale;
object.alpha = scale; //optional
object.x = vanishingPointX + xpos * scale;
object.y = vanishingPointY + ypos * scale;
Z-sorting
//assumes an array of 3D objects with a zpos property
function zSort (a, b) {
return (b.zpos - a.zpos);
}
objects.sort(zSort);
Coordinate rotation
x1 = xpos * cos(angleZ) - ypos * sin(angleZ);
y1 = ypos * cos(angleZ) + xpos * sin(angleZ);
x1 = xpos * cos(angleY) - zpos * sin(angleY);
z1 = zpos * cos(angleY) + xpos * sin(angleY);
y1 = ypos * cos(angleX) - zpos * sin(angleX);
z1 = zpos * cos(angleX) + ypos * sin(angleX);
3D distance
dist = Math.sqrt(dx * dx + dy * dy + dz * dz);