forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Отрисовка толстых линий (http://forum.boolean.name/showthread.php?t=11746)

VotapilD 16.01.2010 22:29

Отрисовка толстых линий
 
Как сделать толстую линию? Даже идей нет, как и наработок. И так же дела с векторами состоят(

Reizel 16.01.2010 22:36

Ответ: Ошибка синтаксиса.
 
А какя связь между названием темы и ее содержанием?

Reizel 16.01.2010 22:37

Ответ: Ошибка синтаксиса.
 
А вообще у линии есть угол , вот собственно толстая линия - это несколько обычных линий под одним и тем же углом. Значит, к координате X надо прибавлять косинус угла, а к Y - синус. Учите тригонометрию :)

VotapilD 16.01.2010 22:46

Ответ: Ошибка синтаксиса.
 
А как угол найти? ))

Reizel 16.01.2010 22:50

Ответ: Ошибка синтаксиса.
 
Ну ты же паскаль юзаешь, ты и должет знать. В Блице есть команда Atan2, собственно она то и возвращала угол...

VotapilD 16.01.2010 23:26

Ответ: Ошибка синтаксиса.
 
И какая же в Паскале? Мой гугль не помогает) И хелп по МП тож

ViNT 16.01.2010 23:35

Ответ: Ошибка синтаксиса.
 
В MP не все так просто, надо свой алгоритм выдумывать.
Сейчас с наскока сообразить не могу, может потом поковыряюсь

Reizel 17.01.2010 10:16

Ответ: Ошибка синтаксиса.
 
Ну можно логически подумать.... Есть две точки на плоскости, соответственно они представляют из себя прямоугольный треугольник. Ну вот значит надо вычислить этот угол, зная его синус(или косинус) . А найти этот самый синус можно, разделив длину противолежащего катета к гипотенузе. Косинус - эт вроде прилежащего к гипотенузе. тангенс - прилежащего к противолежащему...Ну в общем зная синус и косинус угла наверно сожно найти и угол :)

cherepets 17.01.2010 11:51

Ответ: Ошибка синтаксиса.
 
я када граф часы делал, рисовал часовую стрелку как-то так:

drawline(x,y,w,h);
drawline(x+1,y,w,h);
drawline(x,y+1,w,h);

примерно ровно, если хочешь узнать точнее копай исходник в конце темы с noxOS

Tronix 17.01.2010 13:16

Ответ: Ошибка синтаксиса.
 
Ваще ничо не понял. Толстая линия == несколько тонких линий. В чем проблема?

ViNT 17.01.2010 13:45

Ответ: Ошибка синтаксиса.
 
Цитата:

Сообщение от Tronix (Сообщение 133782)
Ваще ничо не понял. Толстая линия == несколько тонких линий. В чем проблема?

По вертикали и горизонтали никаких, а так - угол (относительно OX) может быть a<90, 90<a<180, 180<a<270, 270<a<360, во всех этих случаях линии нужно рисовать по-разному.

impersonalis 17.01.2010 16:08

Ответ: Ошибка синтаксиса.
 
рисуйте окружности. Радиус R - толщина линии. Над расстояниям - надо подумать..

Tronix 17.01.2010 23:35

Ответ: Ошибка синтаксиса.
 
Вложений: 1
Ну не знаю. Если MP не позволяет под углом линии рисовать - то классически по Брезенхаму. Всю жизнь так рисовал. Даже интро запиливал неплохие.

VotapilD 18.01.2010 16:51

Ответ: Ошибка синтаксиса.
 
Цитата:

Сообщение от impersonalis (Сообщение 133797)
рисуйте окружности. Радиус R - толщина линии. Над расстояниям - надо подумать..

я об этом думал и даже что-то вывел(через формулу y=kx+b и последующем подставлением(долго)), но что делать с вектором?(Lib_vector)

Цитата:

Сообщение от cherepets (Сообщение 133779)
drawline(x,y,w,h);
drawline(x+1,y,w,h);
drawline(x,y+1,w,h);

не понял. Это разве не треугольник получается?

Павел, угол можно найти зная синус ИЛИ косинус, вроде=) А их найти по отношению проекций... Но получится ли.. Или зачем нам теперь вообще угол?
Цитата:

Сообщение от Павел
Значит, к координате X надо прибавлять косинус угла, а к Y - синус.

Вот и решение? О_О(/me сомневаиццо и затупилось)

Цитата:

Сообщение от Tronix (Сообщение 133871)
Ну не знаю. Если MP не позволяет под углом линии рисовать - то классически по Брезенхаму. Всю жизнь так рисовал. Даже интро запиливал неплохие.

Я немного не въехал, ни в метод, не в язык на котором написанно...

{130 просотров за 2 дня О_О}//offtop

VotapilD 22.01.2010 20:31

Ответ: Ошибка синтаксиса.
 
Цитата:

Сообщение от Tronix (Сообщение 133871)
Ну не знаю. Если MP не позволяет под углом линии рисовать - то классически по Брезенхаму. Всю жизнь так рисовал. Даже интро запиливал неплохие.

O_O А не долговато ли? Толстую линию по Брезенхаму?


Часовой пояс GMT +4, время: 22:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot