Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Люди столкнулся с проблемой. Мне нужно нарисовать линию координаты точек задаются к примеру x1:= 10 and y1:= 10 x2:= 100 and y2:= 55; А алгоритм построения отрезка я никак придумать не могу. Может ктонить это уже делал, или подкинет мысль как это сделать А лучше код :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 17:52 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
А ты на чем рисовать собрался? [You Control].Canvas.MoveTo(x1, y1) [You Control].Canvas.LineTo(x2, y2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 17:58 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Такую сложность с цветами мудрил, а с линией никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 17:58 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Какие цвета???? А это что, не линия ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 18:04 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Не рисовать нужно попиксельно разные лаинТу не катят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 18:10 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
я не тебе , Лелик, я Егору\r Тут было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 18:10 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
И нафига, если не секрет, попиксельно? В противном случае надо писать формулу прямой (Y=N*X), и для каждого Х ставить точку в соответствующий Y. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 18:14 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 18:22 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Так бы и написал, что попиксельно Можно по Брезенхаму, можно есть еще алгоритм Цаолинь-Ву, он более эффективен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2003, 13:29 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
мдя.... деградируем однако-с... функция вида kx+b проходится еще в школе... равно как и поиск прямой проходящей через две точки.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 04:09 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Ы-ы-ы-ы-ы... (Эт я так гогочу)... Какие формулы?? Со спектрума еще помню: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код проверить не могу - винду переставил, а Delphi нет :) К тому же, уже все позабыл - мне 1С-иной на работе мозги хорошо пропарили. Даж не помню - есть такая функция Sign или нет, так что за ошибки не бейте ;) Вот вам задачка: нарисуйте кружочек без использования всяких там синусов... Попиксельно... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 08:10 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
М. Абраш :-) приблизительная цитата: "если оптимизировать алгоритм такими темпами дальше, то в конце концов функция рисования линии будет состоять из одной команды nop" :-) когда я плотно этим занимался, один цикл рисования окружности занимал у меня меньше тактов чем один цикл рисования линии. на 286 процессоре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 08:26 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Алекс_Ка: x=x+dx! Куда проще-то? Если вспомнить спектрум, то там горизонтально можно было еще до восьми пикселей вывести ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 08:38 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
так на vga то же самое. там четыре слоя на одном адресном пространстве. один байт представляет 8 пикселей. из четырех битов четырех байтов разных слоев организуется цветовой индекс. в этом смысле отличия небольшие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 08:53 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Ладненько, это извращение применимо к линиям, которые хоть как-то похожи на горизонтальные :D. А с окружностью как? Давай, вспоминай, что ты за принцип использовал при прорисовке окружности. Интересно же! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 09:05 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
я тут только так, мельком уравнение брошу. Рисованием окружности не занимался :)) x^2+y^2=R^2 я думаю символ ^2 все расшифруют как "квадрат"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 09:14 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
Это понятно, так и делал, меня больше интересует выражение Alex_kкогда я плотно этим занимался, один цикл рисования окружности занимал у меня меньше тактов чем один цикл рисования линии. на 286 процессоре Это как? Там, видать, формула покруче, нежели у тебя, StarWind :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 09:39 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
нее, у него карточка просто заточена была на это (шутка) а вообще говоря, вполне возможно, если юзать в полной мере графический процессор :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 09:51 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
я щас точно не помню, вот моя процедура, которой я на паскале пользовался. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 09:58 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
не, ну в асме разбираться, это как-то грустно, а если обрисовать алгоритм? ведь это интересно... Обрисовать окружность быстро... используя например только целочисленную арифметику... мне было бы интересно... Народ, паралельно вопросик... рисуем мы например линию под углом и получаем разумеется ступеньки. Существуют методы сглаживания этих ступенек, никто не знает что можно почитать по этому поводу? А то я в нете как-то нарыл, но там ближе к курсу математики... и слишком уж умными словами... а если попроще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:08 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
alex_k: Уел, извращенец :) Но ИМХО линия побыстрее рисоваться будет, если ее тоже в асме отрисовывать. StarWind: По поводу окружности - можно обойтись только целочисленной арифметикой, нужна только процедура извлечения квадратного корня, ессно, тоже целочисленная. Я на спектруме из какого-то целочисленного компилятора выдирал :) Мля, тавтология какая-то получилась... По поводу сглаживания - у знакомого книжка была. Не забуду - спрошу название (см. мой ник). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:19 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
в кратце так: окружность делится на 8 симметричных частей. рассчитываем только одну осьмушку и ставим 8 пикселей. осьмушка рассчитывается начиная с крайней правой позиции. там квадрат радиуса КР равен квадрату икса КХ. затем, при уменьшении квадрата игрека КУ, квадрат икса КХ изменяется так, чтобы сохранилось равентсво КР=КУ+КХ. если при этом у=у+1 то КУ=(у+1)*(у+1) КУ=у*у+2у+1 у*у это КУ значит КУ=КУ+2у+1 если при этом сумма КУ и КХ станет больше КР, значит пора перейти влево по иксу, и уменьшить КХ тем же методом. КХ=(х-1)*(х-1) КХ=КХ-2х+1 в общем алгоритм получается такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. примерно так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:27 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
корень, это круто. особенно на спектруме. но без корня мне больше нравится, прощще. а сглаживание линии привязывается к дополнительным переменным. в алгоритме бризинхема есть переменаня, которая хранит ихменяющееся соотношение х/у. вот с учетом всех частных случаев(горизонтальные и вертикальные) рисуется линия в три пиксела. основной в полный цвет и по бокам, у которых интенсивность рассчитывается в зависимости от того насколько пиксел отклонен от идеальной линии. получается гораздо геморнее чем просто линия, но почти не медленнее и картинка нормально выглядит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:31 |
|
||
|
кто рисовал линии программно???? Нужен хелп
|
|||
|---|---|---|---|
|
#18+
затем, при уменьшении квадрата игрека КУ следует читать - "при увеличении" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=1973&tid=2115455]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 380ms |

| 0 / 0 |
