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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 20:13   #1
rombik
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 13
По умолчанию создание random точек внутри окружности

как составить окружность с постоянным заданным в программном коде радиусом,что бы внутри окружности получались рандомные точки при нажатии мыши?
rombik вне форума Ответить с цитированием
Старый 20.12.2010, 20:32   #2
Genco
Пользователь
 
Аватар для Genco
 
Регистрация: 16.11.2010
Сообщений: 46
По умолчанию

Получай через random() 2 случайных числа: от 0 до R -- L ; и от 0 до Pi -- fi. Далее
x:=X0+L*cos(fi);
y:=Y0+L*sin(fi);

Рисуешь по нажатию мыши.
Бложегов не имею, но найти меня можно в уютном междусобойчике тут: http://coverduck.ru
"Форум программистов, анархистов, анонимусов и просто любителей с интересом пообщаться"
Genco вне форума Ответить с цитированием
Старый 20.12.2010, 20:32   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так подойдет?
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var  cx,cy,r:integer; l:array of double;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var i:integer;x,y:integer; q,w:double;
begin
 Canvas.Ellipse(cx+r,cy+r,cx-r,cy-r);
 for i:=low(l) to high(l) do begin
  q:=random(360);w:=random(360);
  x:=cx+round(l[i]*cos(GradToRad(q)));
  y:=cy+round(l[i]*sin(GradToRad(w)));
  Canvas.Pixels[x,y]:=clBlack;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 cx:=Width div 2;
 cy:=Height div 2;
 r:=150;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   SetLength(l,Length(l)+1);
  l[high(l)]:=random(r);
  Repaint;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2010, 20:38   #4
rombik
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 13
По умолчанию

не совсем)мне нужно,что бы точки внутри окружности сохранялись после нажатия)
и еще,где ты прописываешь кол-во точек внутри окружности?
rombik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить принадлежность точек к окружности, помогите составить блок схему :) miniZadrot9000 Паскаль, Turbo Pascal, PascalABC.NET 14 13.07.2012 18:09
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50
random и создание масива. blackstersl Общие вопросы Delphi 9 05.05.2009 02:03
Получение координат точек касательной к окружности Stilet Помощь студентам 2 01.08.2008 15:12
Определить радиус и центр окружности на которой лежит наибольшее число точек. Zoratul Помощь студентам 2 11.01.2008 16:00