![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.07.2009
Сообщений: 18
|
![]()
задача.
нарисовать кривую коха так, что бы можно было менять порядок кривой, т.е. допустим на первом шаге - ___ , на втором - _/\_, на третьем - каждая часть полученной кривой разбивается еще на 4 отрезка. з.ы. программу примерно написала, но ошибки разобрать не могу((( Код HTML:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; Edit3: TEdit; Label3: TLabel; Edit4: TEdit; Label4: TLabel; Label5: TLabel; Edit5: TEdit; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; level:integer; L,h,a,x1,x2,x3,y1,y2,y3,alfa,beta,startx,starty,endx,endy:real; Procedure Kox(startx:real;endx:real; starty:real; endy:real;level:integer); //Kox(startx,endx,starty,endy,level:integer); implementation {$R *.dfm} procedure Kox(startx:real;endx:real; starty:real; endy:real;level:integer); begin if (level=1) then begin Form1.Image1.Canvas.MoveTo(trunc(startx),trunc(starty)); Form1.Image1.Canvas.LineTo(trunc(endx),trunc(endy)); end else begin L:= sqrt((endx-startx)*(endx-startx)+(endy-starty)*(endy-starty)); h:= L/(2*sqrt(3)); alfa:=sin(a); alfa:=(endy-starty)/L; beta:=cos(a); beta:=(endx-startx)/L; x1:=startx +(endx-startx)/3; x2:=(endx + startx)/2+h * alfa; x3:=startx+2*(endx-startx)/3; y1:=starty+(endy-starty)/3; y2:=(endy + starty)/2-h*beta; y3:=starty+2*(endy-starty)/3; Kox(startx,x1,starty,y1,level-1); Kox(x1,x2,y1,y2,level-1); Kox(x2,x3,y2,y3,level-1); Kox(x3,endx,y3,endy,level-1); end; end; procedure TForm1.Button1Click(Sender: TObject); var a:integer; begin a:=StrToInt(Edit5.Text); startx:=Strtoint(Edit1.Text); starty:=Strtoint(Edit2.Text); endx:=Strtoint(Edit3.Text); endy:=Strtoint(Edit4.Text); x1:=0; x2:=500; y1:=500; y2:=y1; Kox(x1,x2,y1,y2,a); end; end. Последний раз редактировалось foxy342; 25.04.2011 в 00:00. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 110
|
![]()
скажи хотябы на что компелятор ругается, а лчше рисунок вставь
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.07.2009
Сообщений: 18
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
снежинка Коха в TurboPascal | Karina89 | Помощь студентам | 1 | 26.03.2011 21:49 |
Алгоритм Коха | ksandrj | Visual C++ | 1 | 21.10.2010 21:50 |
Фрактал на PHP | Alter | PHP | 5 | 29.10.2008 15:24 |
Фрактал Дерево Пифагора Delphi | yulia | Помощь студентам | 2 | 25.09.2008 08:27 |