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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2010, 09:13   #1
hrusha2006
 
Регистрация: 13.09.2010
Сообщений: 7
По умолчанию Разбиение

Ребята помогите пожалуста,очень срочно надо!Уже незнаю что делатьв общем в чём состоит задача:есть квадрат,а внутри него в центре круг.Нужно сделать разбииение таким образом:круг не должен делиться,а вот квадрат должен быть наподобие паутинки.то есть от центра квадрата отходят "лучики",то есть квадрат будто делится на маленькие равные треугольники,у каждого из которых одна вершина в центре.и эти треугольники нужно ещё поделить на прямоугольнички. в общем незнаю как поделить на прямоугольники.Рисунок и код приложен внизу. В начале квадрат делил на 4 треугольника,потом каждый из которых делил пополам итд.как треугольник Серпинского.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, Buttons, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    Label4: TLabel;
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    Panel2: TPanel;
    Image1: TPaintBox;
    procedure SpeedButton1Click(Sender: TObject);
   // procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  rnd,x1,x2,x3,x4,x5,y1,y2,y3,y4,y5,x11,y11,x55,y55,x22,y22,x33,y33,xa,ya,xb,yb, FinalKol,R:integer;
  c:char;



kol:integer;
implementation

{$R *.dfm}



procedure Line(x1,y1,x2,y2:real; C:TCanvas);
begin
 c.Moveto(round(x1),round(y1));
 c.lineto(round(x2),round(y2));

 end;



Procedure Tri(kol:integer;x1,y1,x2,y2:real);

var
xd,yd,xe,ye,xf,yf,xg,yg:real;f:integer;

begin
inc(kol);

if kol= 3 then
begin
line(x1,y1,x2,y2, Form1.Image1.Canvas);
line(x2,y2,x3,y3, Form1.Image1.Canvas);
line(x3,y3,x1,y1, Form1.Image1.Canvas);

line(x11,y11,x4,y4, Form1.Image1.Canvas);
line(x4,y4,x3,y3, Form1.Image1.Canvas);
line(x3,y3,x11,y11, Form1.Image1.Canvas);

line(x5,y5,x22,y22, Form1.Image1.Canvas);
line(x22,y22,x3,y3, Form1.Image1.Canvas);
line(x3,y3,x22,y22, Form1.Image1.Canvas);

line(x4,y4,x3,y3, Form1.Image1.Canvas);
line(x3,y3,x55,y55, Form1.Image1.Canvas);
line(x55,y55,x4,y4, Form1.Image1.Canvas);









form1.Image1.Canvas.Refresh;
end
else
begin
xd:=round((x1+x2)/2);
yd:=round((y1+y2)/2);

xe:=round((x11+x4)/2);
ye:=round((y11+y4)/2);

xf:=round((x22+x5)/2);
yf:=round((y22+y5)/2);

xg:=round((x4+x55)/2);
yg:=round((y4+y55)/2);

Tri(kol,x1,y1,xd,yd);
Tri(kol,xd,yd,x2,y2);
Tri(kol,x11,y11,xe,ye);
Tri(kol,xe,ye,x4,y4);
Tri(kol,x22,y22,xf,yf);
Tri(kol,xf,yf,x5,y5);
Tri(kol,x4,y4,xg,yg);
Tri(kol,xg,yg,x55,y55);

end;
end;






procedure TForm1.SpeedButton1Click(Sender: TObject);
var x0,y0:integer;
begin

image1.Canvas.Brush.Color:=clWhite;
image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

x1:=0;
y1:=300;
x2:=300;
y2:=300;
x3:=150;
y3:=150;
x11:=0;
y11:=300;
x4:=0;
y4:=0;
x5:=300;
y5:=0;
x22:=300;
y22:=300;
x55:=300;
y55:=0;





image1.Canvas.CleanupInstance;
if spinedit1.value >0 then
begin
FinalKol:=Spinedit1.Value;
Tri(0,x1,y1,x2,y2);

end;
x0:= (300 div 2) - 50;
y0:= (300 div 2) - 50;
Image1.Canvas.Ellipse(x0,y0,x0+100,y0+100);
end;
end.
Вложения
Тип файла: doc разбиение.doc (25.5 Кб, 8 просмотров)

Последний раз редактировалось Stilet; 07.11.2010 в 10:06.
hrusha2006 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбиение текста на слова Vladimir-888 Помощь студентам 4 19.04.2010 09:08
Разбиение ЗП покупюрно frozzy_16 Microsoft Office Excel 13 12.03.2010 16:43
Разбиение на колонки zenner Microsoft Office Excel 13 05.10.2009 09:31
Разбиение записей Лубышев Microsoft Office Access 0 17.03.2009 08:27
Разбиение на части MAcK Общие вопросы .NET 4 18.09.2008 13:56