Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 12
.NET 3.x

Рисование кривой Гильберта, нужен пример

14.12.2011, 19:57. Показов 2135. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. А не может ли мне кто- нибудь показать или написать код рисования кривой Гильберта на Windows Forms Application?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2011, 19:57
Ответы с готовыми решениями:

Рисование кубической кривой
Пыталась нарисовать кубическую кривую, получился следующий код: class Kub { private int N, n; public Kub() ...

Рисование ломаной и кривой
Народ, помогите плиз!!как нарисовать ломаную и кривую(рисовать должен пользователь)

MFC рисование кривой линии
Добрый вечер.Скажите как корректно нарисовать ломанную в MDI?Рисовать отрезки и устанавливать пиксели или через Polygon?После рисование...

8
 Аватар для schanker
6 / 6 / 5
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
26.12.2012, 10:23
ну кого нет проги с кривой гильберта или рекурсией??
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.12.2012, 12:13
вот рабочая программа на паскале с рекурсией, которая чертит кривую гилберта.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
uses Crt, Graph;
var Gd, Gm,x,y,n,t,z,i,s:Integer;
    q:char;
{Chertit pryamuyu tipa k(0-vverh, 1-vpravo, 2-vniz i 3 -vlevo}
procedure l(k:integer);
begin
     case k of
     0:begin setcolor(3);line(x,y,x,y-s);y:=y-s;end;
     1:begin setcolor(5);line(x,y,x+s,y);x:=x+s;end;
     2:begin setcolor(7);line(x,y,x,y+s);y:=y+s;end;
     3:begin setcolor(9);line(x,y,x-s,y);x:=x-s;end
     end
end;
{Chertit element tipa k}
procedure H(n,t,z:integer);
begin
     if n=1 then begin
        l((t+2) mod 4);
        l((t+z+3) mod 4);
        l(t)
        end
     else begin
          H(n-1,(t+z+1) mod 4,(z+2) mod 4);
          l((t+2) mod 4);
          H(n-1,t,z);
          l((t+z+3) mod 4);
          H(n-1,t,z);
          l(t);
          H(n-1,(t+z+3) mod 4,(z+2) mod 4)
     end
end;
begin
  Gd := Detect;
  InitGraph(Gd, Gm, '');
  if GraphResult <> grOk then
    Halt(1);
  Outtextxy(5,20,'Vvedite poryadok lamanoy(0-11)');
  readln(n);
  Outtextxy(5,35,'Vvedite tip lamanoy(0-3)');
  readln(t);
  Outtextxy(5,50,'Vvedite znak pryamoy');
  readln(q);
  Outtextxy(5,65,'Vvedite "wag"');
  readln(s);
  case q of
  '+':z:=0;
  '-':z:=2;
  end;
  case t of
  0:if z=0 then begin x:=getmaxx-10;y:=10 end
       else begin x:=10;y:=10 end;
  1:if z=0 then begin x:=getmaxx-10;y:=getmaxy-10 end
       else begin x:=getmaxx-10;y:=10 end;
  2:if z=0 then begin x:=10;y:=getmaxy-10 end
       else begin x:=getmaxx-10;y:=getmaxy-10 end;
  3:if z=0 then begin x:=10;y:=10 end
       else begin x:=10;y:=getmaxy-10 end
  end;
  for i:=1 to 3 do circle(x,y,i);
  ClrScr;
  SetBkColor(0);
  H(n,t,z);
  Readln;
  CloseGraph;
end.
1
 Аватар для schanker
6 / 6 / 5
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
26.12.2012, 13:14
да этот код есть на дельфи..просто проблемы при переводе на с#. может у кого то есть уже готовые...мало ли
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.12.2012, 13:25
1.убери setcolor //сделал для красоты чтоб линии цветными были
2. вместо Line используй DrawLine(Pens.Black, ...)//вместо точек те же 4 параметра
3. Вместо getmax используй константы для размера холста
4. Получай данные из текстбоксов или каким-либо другим способом.
5. := замени на =
6. var x,y,n,t,z,i,s:Integer; - это глобильные переменные типа int;
7. Исправь заголовки функции и процедуры
8. Вместо case - switch-case
5 минут дела ничего сложного
0
 Аватар для schanker
6 / 6 / 5
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
26.12.2012, 13:28
Спасибо..ща попробуем
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.12.2012, 13:31
в функцию H b l добавьте параметр Graphics на котором нужно рисовать.
0
 Аватар для schanker
6 / 6 / 5
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
26.12.2012, 14:29
получилось, но что такое 'Vvedite "wag"'?
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.12.2012, 18:54
wag - это размер линии.
на паскале очень низкое разрешения экрана, потому чтоб отобразить кривую порядка выше 8 линии должны быть совсем маленькие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2012, 18:54
Помогаю со студенческими работами здесь

Рисование кривой по клику мыши
Лабораторная работа. Требуется написать приложение MFC, чтобы по клику мыши рисовалась непрерывная кривая линия, получилось только сделать...

Рисование кривой Безье по трем точкам
Доброго утра, форумчане. Надо нарисовать на форме кривую Безье по трём кликам мыши. Как такое реализовать? Можно ли это сделать с помощью...

Рисование кривой линии с помощью мыши
Рисую произвольную кривую на форме с помощью мыши в событии формы Mouse_Move, при условии что зажата на мышке левая кнопка, потом считываю...

Рисование кривой линии при нажатой ЛКМ
Сабж. Нужно отрисовывать кривую линию при нажатой ЛКМ. Видеорежим: 320х200 (13h). Беру координаты курсора с помощью функции 3h...

PaintBox: рисование кривой при зажатой кнопке мыши
Разработайте приложение из одной формы, разместив на форме компонент Panel, а на Panel – компонент PaintBox. Запрограммируйте перемещение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru