Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 13:42   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Можно ли, используя перо и кисть( в делфи)) нарисовать параллелограмм?

Доброго времени суток, уважаемые программисты))
Не подскажет ли кто- как нарисовать в делфи четырёхугольник, используя перо и кисть ? А то я только по точкам могу ( мне вообще параллелограмм нужен, у которого углы не прямые ))
Заранее спасибо ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 02.06.2010, 14:59   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А чем не нравится линиями?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.06.2010, 15:01   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

moveto->lineto ? - можно, но я не знаю как его потом залить....(чтобы сплошной был)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 02.06.2010, 15:03   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

а чем polyline или polygon не устраивает?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 02.06.2010, 15:07   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

FloodFill используй для заливки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.06.2010, 15:07   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

не знаю про такие -что это? )) просто вот например если использовать функцию рисования прямоугольника - та область, которая окружена рёбрами заливается автоматически , я вовсе не поклонник всего "автоматического" и "предопределённого" просто хочу сказать, что не знаю других средств ))

Цитата:
Прототип

type TFillStyle = (fsSurface, fsBorder);

procedure FloodFill(X, Y: Integer; Color: TColor;
FillStyle: TFillStyle);


Описание

Метод FloodFill закрашивает текущей кистью Brush замкнутую область канвы, определенную цветом и начальной точкой закрашивания (X, Y). Точка с координатами X и Y является произвольной внутренней точкой заполняемой области, которая может иметь произвольную форму. Граница этой области определяется сочетанием параметров Color и FillStyle. Параметр Color указывает цвет, который используется при определении границы закрашиваемой области, а параметр FillStyle определяет, как именно по этому цвету определяется граница. Если FillStyle = fsSurface, то заполняется область, окрашенная цветом Color, а на других цветах метод останавливается. Если FillStyle = fsBorder, то наоборот, заполняется область окрашенная любыми цветами, не равными Color, а на цвете Color метод останавливается.
Пепел Феникса,спасибо, попробую ))
russian-stalker,благодарю ,но как-то непонятно-
Цитата:
Описание:

function Polyline(DC: HDC, var Points; Count: Integer): Bool;

Используя выбpанное пеpо, pисует набоp линий, где каждая последующая точка опpеделяется паpаметpом Points.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось Stilet; 02.06.2010 в 15:55.
vedro-compota вне форума Ответить с цитированием
Старый 02.06.2010, 15:59   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Построение полигона косинусами:
Код:
unit Unit1;

interface

uses     math,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure draw(cx,cy,BeginAngle:real; n,r:integer;kr:integer=0);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//********* PROCEDURE**********
procedure TForm1.draw;
var rx,ry,x,y,angle, rang, ang:real;e,i:integer;
 atp:array of TPoint;
begin

//cx:=form1.Width div 2;cy:=form1.Height div 2;
if kr>0
ang:=360/n;
angle:=(2*pi*ang)/360; rang:=angle;
SetLength(atp,n);
with form1 do begin
  //********* FOR ******************
  for  i:=0  to n  do
  begin
   //canvas.MoveTo(cx,cy);
   rx:=(cos(angle+BeginAngle));
   ry:=(sin(angle+BeginAngle));
   atp[i].X:=round(cx+r*(rx));
   atp[i].Y:=round(cy+r*(ry));
 //  canvas.LineTo(round(x),round(y));
 angle:=angle+rang;
   end;
  //******* END FOR ****************
  Canvas.Polygon(atp);
end;
//form1.Canvas.LineTo(100,100);
end;

//********* END PROCEDURE*******



procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
//for i:=0 to 9 do
 draw(100,100,0,6,20);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  draw(100,100,x,100,20);
end;

end.
Вдруг пригодится
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2010, 20:16   #8
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Спасибо, Stilet
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно используя IdHttp обратиться к серверу по IP не используя доменное имя. Chasow Работа с сетью в Delphi 1 06.04.2010 04:16
Как можно нарисовать в делфи человечка, который отжимается Chyvis Помощь студентам 3 13.12.2009 12:21
Можно ли решить такую задачу не используя условный оператор? Armorer Помощь студентам 5 15.10.2009 12:53
Как нарисовать на Tchart график функции, заданной таблично(используя метод наименьших квадратов) Legion2008 Мультимедиа в Delphi 0 11.05.2009 16:00
нарисовать квадрат с длиной стороны 100 пикселей, используя процедуру linerel(x,y:integer) Кася_ Помощь студентам 6 23.02.2009 19:13