less copy protection, more size visualization
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

161 wiersze
6.3 KiB

  1. function makeState(name, height, width, area) {
  2. return {
  3. name: name,
  4. constructor: () => makeEntity(
  5. { name: name },
  6. {
  7. state: {
  8. attributes: {
  9. height: {
  10. name: "Height",
  11. power: 1,
  12. type: "length",
  13. base: height
  14. },
  15. width: {
  16. name: "Width",
  17. power: 1,
  18. type: "length",
  19. base: width
  20. },
  21. area: {
  22. name: "Area",
  23. power: 2,
  24. type: "area",
  25. base: area
  26. },
  27. },
  28. name: "State",
  29. image: {
  30. source: "./media/naturals/" + name.toLowerCase().replace(" ", "-") + ".svg"
  31. }
  32. }
  33. }
  34. )
  35. }
  36. }
  37. function makePlanet(name, diameter, mass, image) {
  38. return {
  39. name: name,
  40. constructor: () => makeObject(
  41. name,
  42. {
  43. body: {
  44. height: diameter,
  45. mass: mass,
  46. image: (image === undefined ? {
  47. source: "./media/naturals/planet-generic.svg"
  48. } : image),
  49. name: "Body"
  50. }
  51. }
  52. )
  53. };
  54. }
  55. function makeMountains() {
  56. const views = {};
  57. [
  58. ["Everest", 29029],
  59. ["K2", 28251],
  60. ["Kilimanjaro", 19341],
  61. ["Rainier", 14409],
  62. ["Pikes Peak", 14114],
  63. ["Fuji", 12388],
  64. ["Olympus", 9573],
  65. ].forEach(mountain => {
  66. views[mountain[0]] = {
  67. height: math.unit(mountain[1], "feet"),
  68. image: { source: "./media/naturals/mountain.svg" },
  69. name: mountain[0],
  70. rename: true
  71. }
  72. });
  73. return {
  74. name: "Mountains",
  75. constructor: () => makeObject(
  76. "Mountains",
  77. views
  78. )
  79. };
  80. }
  81. function makeNaturals() {
  82. const results = [];
  83. results.push(makeHeightWeight(
  84. [
  85. ["Mercury", 4879, "km", 0.330e24, "kg", "./media/naturals/planet-generic.svg"],
  86. ["Venus", 12104, "km", 4.87e24, "kg", "./media/naturals/planet-generic.svg"],
  87. ["Earth", 12756, "km", 5.97e24, "kg", "./media/naturals/planet-generic.svg"],
  88. ["Moon", 3475, "km", 0.073e24, "kg", "./media/naturals/planet-generic.svg"],
  89. ["Mars", 6792, "km", 0.642e24, "kg", "./media/naturals/planet-generic.svg"],
  90. ["Jupiter", 142984, "km", 1898e24, "kg", "./media/naturals/planet-generic.svg"],
  91. ["Saturn", 120536, "km", 568e24, "kg", "./media/naturals/saturn.svg"],
  92. ["Uranus", 51118, "km", 86.8e24, "kg", "./media/naturals/planet-generic.svg"],
  93. ["Neptune", 49528, "km", 102e24, "kg", "./media/naturals/planet-generic.svg"],
  94. ["Pluto", 2370, "km", 0.0146e24, "kg", "./media/naturals/planet-generic.svg"]
  95. ],
  96. "Planets",
  97. "",
  98. ""
  99. ));
  100. results.push(makeHeight(
  101. [
  102. ["orbit-of-mercury", 0.387*2, "AU", "./media/naturals/orbit.svg"],
  103. ["orbit-of-venus", 0.723*2, "AU", "./media/naturals/orbit.svg"],
  104. ["orbit-of-earth", 1*2, "AU", "./media/naturals/orbit.svg"],
  105. ["orbit-of-mars", 1.524*2, "AU", "./media/naturals/orbit.svg"],
  106. ["orbit-of-jupiter", 5.2044*2, "AU", "./media/naturals/orbit.svg"],
  107. ["orbit-of-saturn", 9.5826*2, "AU", "./media/naturals/orbit.svg"],
  108. ["orbit-of-uranus", 19.21840*2, "AU", "./media/naturals/orbit.svg"],
  109. ["orbit-of-neptune", 30.11*2, "AU", "./media/naturals/orbit.svg"],
  110. ["orbit-of-pluto", 39.482*2, "AU", "./media/naturals/orbit.svg"],
  111. ],
  112. "Orbits",
  113. "",
  114. ""
  115. ));
  116. results.push(makeHeightWeight(
  117. [
  118. ["Sun", 1, "solarradii", 1, "solarmasses", "./media/naturals/planet-generic.svg"],
  119. ["White Dwarf", 14000, "km", 1e30, "kg", "./media/naturals/planet-generic.svg"],
  120. ["Polaris", 37.5, "solarradii", 5.4, "solarmasses", "./media/naturals/planet-generic.svg"],
  121. ["Sun (Red Giant)", 256, "solarradii", 1, "solarmasses", "./media/naturals/planet-generic.svg"],
  122. ["Betelgeuse", 887, "solarradii", 11.6, "solarmasses", "./media/naturals/planet-generic.svg"],
  123. ["VY Canis Majoris", 1420, "solarradii", 17, "solarmasses", "./media/naturals/planet-generic.svg"],
  124. ],
  125. "Stars",
  126. "",
  127. ""
  128. ));
  129. results.push(makePlanet("Milky Way", math.unit(105700, "lightyears"), math.unit(3e+39, "kg"), { source: "./media/naturals/milky-way.svg" }));
  130. results.push(makePlanet("Observable Universe", math.unit(93.016e9, "lightyears"), math.unit(10e53, "kg")));
  131. results.push(makePlanet("Multiverse", math.unit(1e30, "lightyears"), math.unit(1e100, "kg")));
  132. results.push(makeState("Alaska", math.unit(2071.44, "km"), math.unit(2483.83, "km"), math.unit(1723337, "km^2")));
  133. results.push(makeState("California", math.unit(1048.82, "km"), math.unit(852.02, "km"), math.unit(423967, "km^2")));
  134. results.push(makeState("Colorado", math.unit(442.44, "km"), math.unit(604.47, "km"), math.unit(269601, "km^2")));
  135. results.push(makeState("Florida", math.unit(716.79, "km"), math.unit(723.97, "km"), math.unit(170312, "km^2")));
  136. results.push(makeState("Maine", math.unit(505.94, "km"), math.unit(330.98, "km"), math.unit(91633, "km^2")));
  137. results.push(makeState("Montana", math.unit(497.99, "km"), math.unit(983.98, "km"), math.unit(380831, "km^2")));
  138. results.push(makeState("New York", math.unit(494.92, "km"), math.unit(536.63, "km"), math.unit(141297, "km^2")));
  139. results.push(makeState("Texas", math.unit(1183.33, "km"), math.unit(1226.69, "km"), math.unit(695662, "km^2")));
  140. results.push(makeMountains());
  141. results.sort((b1, b2) => {
  142. e1 = b1.constructor();
  143. e2 = b2.constructor();
  144. return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value;
  145. });
  146. return results;
  147. }