less copy protection, more size visualization
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

89 строки
3.7 KiB

  1. function makeState(name, height, width, area) {
  2. return {
  3. name: name,
  4. constructor: () => makeEntity(
  5. name,
  6. "State",
  7. {
  8. state: {
  9. attributes: {
  10. height: {
  11. name: "Height",
  12. power: 1,
  13. type: "length",
  14. base: height
  15. },
  16. width: {
  17. name: "Width",
  18. power: 1,
  19. type: "length",
  20. base: width
  21. },
  22. area: {
  23. name: "Area",
  24. power: 2,
  25. type: "area",
  26. base: area
  27. },
  28. },
  29. name: "State",
  30. image: {
  31. source: "./media/naturals/" + name.toLowerCase().replace(" ", "-") + ".svg"
  32. }
  33. }
  34. }
  35. )
  36. }
  37. }
  38. function makePlanet(name, diameter, mass, image) {
  39. return {
  40. name: name,
  41. constructor: () => makeObject(
  42. name,
  43. {
  44. body: {
  45. height: diameter,
  46. mass: mass,
  47. image: (image === undefined ? {
  48. source: "./media/naturals/planet-generic.svg"
  49. } : image),
  50. name: "Body"
  51. }
  52. }
  53. )
  54. };
  55. }
  56. function makeNaturals() {
  57. const results = [];
  58. results.push(makePlanet("Mercury", math.unit(4879, "km"), math.unit(0.330e24, "kg")));
  59. results.push(makePlanet("Venus", math.unit(12104, "km"), math.unit(4.87e24, "kg")));
  60. results.push(makePlanet("Earth", math.unit(12756, "km"), math.unit(5.97e24, "kg")));
  61. results.push(makePlanet("Moon", math.unit(3475, "km"), math.unit(0.073e24, "kg")));
  62. results.push(makePlanet("Mars", math.unit(6792, "km"), math.unit(0.642e24, "kg")));
  63. results.push(makePlanet("Jupiter", math.unit(142984, "km"), math.unit(1898e24, "kg")));
  64. results.push(makePlanet("Saturn", math.unit(120536, "km"), math.unit(568e24, "kg"), { source: "./media/naturals/saturn.svg" }));
  65. results.push(makePlanet("Uranus", math.unit(51118, "km"), math.unit(86.8e24, "kg")));
  66. results.push(makePlanet("Neptune", math.unit(49528, "km"), math.unit(102e24, "kg")));
  67. results.push(makePlanet("Pluto", math.unit(2370, "km"), math.unit(0.0146e24, "kg")));
  68. results.push(makeState("Alaska", math.unit(2071.44, "km"), math.unit(2483.83, "km"), math.unit(1723337, "km^2")));
  69. results.push(makeState("California", math.unit(1048.82, "km"), math.unit(852.02, "km"), math.unit(423967, "km^2")));
  70. results.push(makeState("Colorado", math.unit(442.44, "km"), math.unit(604.47, "km"), math.unit(269601, "km^2")));
  71. results.push(makeState("Florida", math.unit(716.79, "km"), math.unit(723.97, "km"), math.unit(170312, "km^2")));
  72. results.push(makeState("Maine", math.unit(505.94, "km"), math.unit(330.98, "km"), math.unit(91633, "km^2")));
  73. results.push(makeState("Montana", math.unit(497.99, "km"), math.unit(983.98, "km"), math.unit(380831, "km^2")));
  74. results.push(makeState("New York", math.unit(494.92, "km"), math.unit(536.63, "km"), math.unit(141297, "km^2")));
  75. results.push(makeState("Texas", math.unit(1183.33, "km"), math.unit(1226.69, "km"), math.unit(695662, "km^2")));
  76. results.sort((b1, b2) => {
  77. e1 = b1.constructor();
  78. e2 = b2.constructor();
  79. return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value;
  80. });
  81. return results;
  82. }