less copy protection, more size visualization
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

178 lignes
5.0 KiB

  1. function makeLandmark(name, height, image) {
  2. views = {
  3. building: {
  4. attributes: {
  5. height: {
  6. name: "Height",
  7. power: 1,
  8. type: "length",
  9. base: height,
  10. },
  11. },
  12. image: image,
  13. name: "building",
  14. },
  15. };
  16. return makeEntity({ name: name }, views);
  17. }
  18. function makeLandmarks() {
  19. const results = [];
  20. results.push({
  21. name: "Burj Khalifa",
  22. constructor: () =>
  23. makeLandmark("Burj Khalifa", math.unit(829.8, "meter"), {
  24. source: "./media/landmarks/burj-khalifa.svg",
  25. }),
  26. });
  27. results.push({
  28. name: "Canton Tower",
  29. constructor: () =>
  30. makeLandmark("Canton Tower", math.unit(604, "meter"), {
  31. source: "./media/landmarks/canton-tower.svg",
  32. }),
  33. });
  34. results.push({
  35. name: "CN Tower",
  36. constructor: () =>
  37. makeLandmark("CN Tower", math.unit(553.3, "meter"), {
  38. source: "./media/landmarks/cn-tower.svg",
  39. }),
  40. });
  41. results.push({
  42. name: "Taipei 101",
  43. constructor: () =>
  44. makeLandmark("Taipei 101", math.unit(509.2, "meter"), {
  45. source: "./media/landmarks/taipei-101.svg",
  46. }),
  47. });
  48. results.push({
  49. name: "Empire State Building",
  50. constructor: () =>
  51. makeLandmark("Empire State Building", math.unit(443.2, "meter"), {
  52. source: "./media/landmarks/empire-state-building.svg",
  53. }),
  54. });
  55. results.push({
  56. name: "Eiffel Tower",
  57. constructor: () =>
  58. makeLandmark("Eiffel Tower", math.unit(324, "meter"), {
  59. source: "./media/landmarks/eiffel-tower.svg",
  60. }),
  61. });
  62. results.push({
  63. name: "Chrysler Building",
  64. constructor: () =>
  65. makeLandmark("Chrysler Building", math.unit(318.9, "meter"), {
  66. source: "./media/landmarks/chrysler-building.svg",
  67. }),
  68. });
  69. results.push({
  70. name: "Gateway Arch",
  71. constructor: () =>
  72. makeLandmark("Gateway Arch", math.unit(630, "feet"), {
  73. source: "./media/landmarks/gateway-arch.svg",
  74. }),
  75. });
  76. results.push({
  77. name: "Washington Monument",
  78. constructor: () =>
  79. makeLandmark(
  80. "Washington Monument",
  81. math.unit(555 + 5 / 12, "feet"),
  82. { source: "./media/landmarks/washington-monument.svg" }
  83. ),
  84. });
  85. results.push({
  86. name: "Great Pyramid of Giza",
  87. constructor: () =>
  88. makeLandmark("Great Pyramid of Giza", math.unit(146, "meters"), {
  89. source: "./media/landmarks/pyramid.svg",
  90. }),
  91. });
  92. results.push({
  93. name: "Statue of Liberty",
  94. constructor: () =>
  95. makeLandmark("Statue of Liberty", math.unit(305.5, "feet"), {
  96. source: "./media/landmarks/statue-of-liberty.svg",
  97. }),
  98. });
  99. results.push({
  100. name: "Leaning Tower of Pisa",
  101. constructor: () =>
  102. makeLandmark("Leaning Tower of Pisa", math.unit(185.93, "feet"), {
  103. source: "./media/landmarks/leaning-tower-of-pisa.svg",
  104. bottom: 84 / 3755,
  105. }),
  106. });
  107. results.push({
  108. name: "Elizabeth Tower",
  109. constructor: () =>
  110. makeLandmark("Elizabeth Tower", math.unit(315, "feet"), {
  111. source: "./media/landmarks/elizabeth-tower.svg",
  112. }),
  113. });
  114. results.push(
  115. makeModel({
  116. name: "Towers",
  117. kind: "landmarks",
  118. forms: [
  119. {
  120. name: "Tokyo Skytree",
  121. views: [{ name: "Front", height: 634 }],
  122. },
  123. {
  124. name: "Canton Tower",
  125. views: [{ name: "Front", height: 604 }],
  126. },
  127. {
  128. name: "CN Tower",
  129. views: [{ name: "Front", height: 553.3 }],
  130. },
  131. {
  132. name: "Ostankino Tower",
  133. views: [{ name: "Front", height: 540.1 }],
  134. },
  135. {
  136. name: "Oriental Pearl Tower",
  137. views: [{ name: "Front", height: 468 }],
  138. },
  139. {
  140. name: "Milad Tower",
  141. views: [{ name: "Front", height: 435 }],
  142. },
  143. {
  144. name: "Kuala Lumpur Tower",
  145. views: [{ name: "Front", height: 421 }],
  146. },
  147. ],
  148. })
  149. );
  150. results.sort((b1, b2) => {
  151. e1 = b1.constructor();
  152. e2 = b2.constructor();
  153. return -math.subtract(
  154. e1.views[e1.defaultView].height,
  155. e2.views[e2.defaultView].height
  156. ).value;
  157. });
  158. return results;
  159. }