|
|
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleks, Какой конец трубы к нам ближе нижний или верхний ? (там, где 4 кружочка, рис. в посте [20542505] ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:19 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
я - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:19 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
1) По поводу Си и алгоритмов. Как я и думал - автору нужен алгоритм + реализация. Голый алгоритм пишется как в умных книжках типа Кормена или Кнута на "птичьем языке". Смесь модулы или АЯ. И я готов спорить на большое количество пива что автору такая форма подачи ничем вообще не поможет. Поэтому я привел фрагмент шаблонного кода на Java. Хотя он очень похож на Си и на С#. 2) В конструкторе я ошибся. Там еще есть радиус. Код: java 1. 2. 3. И можно опционально добавить точность аппроксимации. Пускай это будет количество граней (наподобие правильного многоугольника в качестве образующей). Код: java 1. 2. 3. 3) По поводу OpenGL. Сейчас - пофиг. Потому что у нас нету mesh цилиндра. А когда mesh будет - тогда можно будет ее отрисовать через любую либу как через фасад или адаптер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:25 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропил, это вопрос к ТСу, чем он будет реализовывать алгоритм - до такой степени подробности и опускаться. Пока ничего неизвестно, ведь не просто же рисунок требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:26 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonИ можно опционально добавить точность аппроксимации. Пускай это будет количество граней mayton, по мне нет разницы в эллипсе или многоуг-ке. Будет уравнение эллипса в экранных к-тах - так какая разница кроме скорости, что проектировать на экран. Нужна красота? В конце понадобится заглушка (матрица) и вектор смещения, чтобы привести наши "исходные" координаты в соответствие с заказчиковыми, и в этом видится проблемка на стороне ТС, возможно вплоть до истечения конечного срока. Сначала допустим, что наши == ТС. Допустим, наши - это поворот экранных на 90 вокруг Х по часовой: Z ---) -Y Y --) Z X --) X где экранные: Z - на нас, (0, 0) в левом верхнем, Y - вниз? Можно для простоты потом параметризовать ур-ние эллипса и сделать шаг равномерным по параметру, а палки рисовать - никакого GL потом не будет нужно. Лично я до сих пор в догадках, для чего и в каком виде автору это нужно, т.к. сначала: дайте алгоритм, а потом: вот вам вертикальное бревно, нужен взгляд на него всегда немного сверху/снизу, вне зависимости от высоты бревна. Ну вот же почти готовое ТЗ. Кто-нить продолжать будет? лично я не буду кодить, формулы если только неспеша изобразить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:05 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98Нужна красота? сетка нужна, а не уравнение. Топикстартер об этом писал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:20 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Предлагаю упростить задачу: есть окружность, заданная центром ( 3Д ) и радиусом построенная по оси х-у также есть 2 точки (линия), одна из которых совпадает с центром окружности. Необходимо повернуть окружность чтоб она стала перпендикулярна линии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:52 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksПредлагаю упростить задачу: есть окружность, заданная центром ( 3Д ) и радиусом построенная по оси х-у также есть 2 точки (линия), одна из которых совпадает с центром окружности. Необходимо повернуть окружность чтоб она стала перпендикулярна линии. исходная задача несколько понятнее была ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:11 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
да угол же между прямой и плоскостью Рассказать как найти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:20 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98, какой угол и что он даст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:24 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
с той поправкой, что a, b, c уже даны в уравн-ии (1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:50 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
В азарте и забыл, что Т2 есть центр Окр., никаких t не надо, всё проще. Одна ось на новой плоскости - диаметр Окр, к-рый перпендик. прямой Другая ось - перпендик. первой. Обе выходят из центра Окр. Вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:17 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98maytonИ можно опционально добавить точность аппроксимации. Пускай это будет количество граней mayton, по мне нет разницы в эллипсе или многоуг-ке. Будет уравнение эллипса в экранных к-тах - так какая разница кроме скорости, что проектировать на экран. Нужна красота? В конце понадобится заглушка (матрица) и вектор смещения, чтобы привести наши "исходные" координаты в соответствие с заказчиковыми, и в этом видится проблемка на стороне ТС, возможно вплоть до истечения конечного срока. Сначала допустим, что наши == ТС. Допустим, наши - это поворот экранных на 90 вокруг Х по часовой: Z ---) -Y Y --) Z X --) X где экранные: Z - на нас, (0, 0) в левом верхнем, Y - вниз? Можно для простоты потом параметризовать ур-ние эллипса и сделать шаг равномерным по параметру, а палки рисовать - никакого GL потом не будет нужно. Лично я до сих пор в догадках, для чего и в каком виде автору это нужно, т.к. сначала: дайте алгоритм, а потом: вот вам вертикальное бревно, нужен взгляд на него всегда немного сверху/снизу, вне зависимости от высоты бревна. Ну вот же почти готовое ТЗ. Кто-нить продолжать будет? лично я не буду кодить, формулы если только неспеша изобразить. Посмотрите на картинку 20542781 которую ТС изобразил. Это-же вырожденный случай. Цилиндр расположен горизонтально. Нет... конечно на формулу это не очень влияет. Просто если нужна диаграмма типа в Excel рисуют. То.. там даже нету перспективы. И освещение там упрощенное. По сути... рисуется контур. И заливается градиентом. Только одно видимое основание - заливается цветом. Тащем-та я вангую что все что мы кодим ТС-у не очень нужно. Да пофиг... Мыже тут - альтруисты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:40 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Еще децл кода. Hey, ТС у тебя есть вопросы по коду? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:02 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
mayton, это фрагмент моего рисунка, я понял так, что нам пояснялось что надо получить, и я замял вопрос, направление значяения не имело. Зато имело место безразличие к наличию перспективы -- сммотрим всегда из бесконечности. Из этих же соображений в последней постановке оси тоже будут без перспективы, но они и не рисуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:10 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonМы же тут - альтруистыНесмотря на затронутые тайные струны души я не гонюсь за очередным велосипедом и всё это время намекал. Постановка задачи приятнее)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:32 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98maytonМы же тут - альтруистыНесмотря на затронутые тайные струны души я не гонюсь за очередным велосипедом и всё это время намекал. Постановка задачи приятнее)) Я тоже никуда не спешу. Я для себя пытаюсь понять границы человеческого любопытства и лени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:45 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonПотому что у нас нету mesh цилиндра в исходниках three.js всё есть и достаточно прозрачно https://threejs.org/docs/#api/geometries/CylinderGeometry Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 18:42 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропил, я посмотрел исходник поверхностно. Я не знаю что в нем есть. Но я скажу чего в нем нет. В нем нет координат двух центров. Возможно данный нам в использование замечательный исходник на JavaScript является частью более крупного программного продукта где есть стек преобразований типа basic-transforms -> world-transforms. И через basic-transforms мы можем эмулировать 2 центра. Но это все хорошо для программного продукта типа Blender, 3dMax, AutoCad, но для такого мелкого ТЗ как у автора - избыточно ИМХО. Это примерно - как решать школьную задачку о двух сближающихся поездах через диф-уравнения. Вроде-бы и можно ... но школьник не будет впечатлён решением да и избыточно. ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 18:59 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonВ нем нет координат двух центров. Возможно данный нам в использование замечательный исходник на JavaScript является частью более крупного программного продукта где есть стек преобразований типа basic-transforms -> world-transforms. конечно есть полный набоп преобразовании и генерация сеток для базовых фигур. maytonИ через basic-transforms мы можем эмулировать 2 центра. сколько пафоса - длина отрезка интересует - не более. maytonЭто примерно - как решать школьную задачку о двух сближающихся поездах через диф-уравнения задача сетку построить,камеру поставить - озвучена явно, без источника света - скучно это же введение в 3D моделирование, какие к чертям дифуры? не вижу избыточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:11 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропилзадача сетку построить,камеру поставить - озвучена явно, без источника света - скучно это же введение в 3D моделирование, какие к чертям дифуры? не вижу избыточности. Где камера? Автор вроде не говорил ничего о камерах? Давайте хоть сетку построим. А этот javascript-исходник ... он что на выходе дает? Я так и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:34 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98roleks, я ожидал подобный вопрос. Плоскость, перпенд-я прямой, можно задать уравнением (1) 0 = х /(x2-х1) + y /(y2-y1) +z /(z2-z1), в к-ром коэфф-ты abc можно найти, потребовав пересечения с плоскостью окр-сти. В этом случаче с координатной плоскостью (ХУ) То есть z=0 прямая, заданная парой точек T1/2= (х1/2, y1/2, z1/2), пересекает плоскость, в к-рой лежит Окр(х0, у0, R), в некой точке T3=(х3, у3, z3) = T1 +t*(T2-T1) (2) Далее можно тупо найти косинус нужного угла и спроектировать диаметры окружности, параллельный и перпенд-й прямой, являющейся пересечением 2-х плоскостей. Получим ур-ие эллипса по его полуосям, одна из к-рых == 2R. А можно по прямой пересечения плоск-й достроить ось координат, найти м-цу M преобразования коорд-т и тогда по любой точке круга можно вычислить коорд-ты её проекции. За мелкие неточности ссори. для того чтоб построить матрицу преобразования, необходима еще 1 ось. ГШде ее взять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:47 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39466627&tid=1340374]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 449ms |

| 0 / 0 |
