Алгоритмы, анимация
Вложений: 1
Вложение 100956 нужно указать величины(Line(....)LineTo(..),Circle(....)) этой фигуры на проге..
вот такая прога,(не к этой фигуре)только величины линии, кругов сколько там набирать не знаю как..помогите пожалуйста если поняли.. была бы очень признательна. uses Graph,CRT; var Driver, Mode:Integer; x,y,a,b:integer; Xs,Ys:string; k:char; begin Driver:=Detect; InitGraph(Driver,Mode,' '); if GraphResult <> grok then Halt(1); x:=100; y:=100; a:=20; repeat SetColor(10); Circle (x+120,y+140,a+20); Circle (x+230,y+40,a+20); Circle (x+340,y+140,a+20); Line(x+190,y+40,x+120,y+100); Line(x+270,y+40,x+340,y+100); Line(x+230,y+80,x+160,y+140); Line(x+230,y+80,x+300,y+140); Line(x+160,y+140,x+230,y+200); Line(x+230,y+200,x+300,y+140); SetColor(0); Str(x,Xs); Str(y,Ys); SetColor(5); OutTextXY(300,150,'x='+Xs+' : y='+Ys); k:=ReadKey; SetColor(0); Circle (x+120,y+140,a+20); Circle (x+230,y+40,a+20); Circle (x+340,y+140,a+20); Line(x+190,y+40,x+120,y+100); Line(x+270,y+40,x+340,y+100); Line(x+230,y+80,x+160,y+140); Line(x+230,y+80,x+300,y+140); Line(x+160,y+140,x+230,y+200); Line(x+230,y+200,x+300,y+140); Str(x,Xs); Str(y,Ys); Setcolor(0); OutTextXY(300,150,'x='+Xs+' : y='+Ys); if k=#77 then x:=x+10; if k=#75 then x:=x-10; if k=#72 then y:=y-10; if k=#80 then y:=y+10; if k=#13 then a:=a+10; if k=#8 then a:=a-10; if k=#49 then b:=4; if k=#50 then b:=2; if k=#51 then b:=3; if k=#52 then b:=5; if k=#53 then b:=6; if k=#54 then b:=7; if k=#55 then b:=8; if k=#56 then b:=9; if k=#57 then b:=10; if k=#58 then b:=1; until k=#27; CloseGraph; end. |
Вложений: 1
Цитата:
Код:
uses Graph,CRT; |
спасибо конечно,но мне самый простой нужен был вид величин,мы такое как вы написали не проходили..а нужно по пройденному, вот как здесь:Circle (x+120,y+140,a+20);
Circle (x+230,y+40,a+20); Circle (x+340,y+140,a+20); Line(x+190,y+40,x+120,y+100); Line(x+270,y+40,x+340,y+100); Line(x+230,y+80,x+160,y+140); Line(x+230,y+80,x+300,y+140); Line(x+160,y+140,x+230,y+200); там x,y,r, a должны быть и по градусам.. у меня простые фигуры получаются а такая-нет, |
GetMaxX - возвращает максимальную координату по оси OX
GetMaxY - возвращает максимальную координату по оси OY SetLineStyle - задает стиль линий, в данном случае используются линии двух типов - штриховые и сплошные. Переменные CenterX и CenterY содержат соответственно координаты середины экрана, отталкиваясь от этой точки и вычисляются координаты для прямоугольников, окружностей и линий. Переменная Step задает величину сдвига координат, это то же самое, что вы к x (к y) прибавляете (или отнимаете) какое-то число. В принципе, основные непонятки разъяснил, более подробно читайте здесь: http://www.tehnari.ru/attachments/f2...adhaiienoa.zip |
Лёш, спасибо за помощь, потому как я претензий уважаемой Гульназ не понял напрочь. Мне-то казалось, что всё предельно просто: прямоугольники, круги, линии... И градусы зачем-то понадобились - как будто там дуги иди эллипсы... Ну и ладно - не подошло, и пёс с ним: у меня эта "программа" заняла 10 минут, не жалко.
А вообще последнее время это сплошное нытьё обращающихся за помощью на тему "сделайте не так, как надо, а в пределах того, что мы проходили" изрядно достает. То им функцию нельзя: "не проходили", то, вишь, "как хотите, но чтобы без циклов, циклов мы не знаем" ну и т.п. Между прочим, если это преподские требования типа "ни шагу за рамки того, что "проходили"", то таких преподов нужно IMHO отстреливать, чтобы не мучились. А вообще давно подозреваю, что что-то с госпожой Гульназ.М. "нечисто": ну не может такого быть, чтобы студентке приходилось сегодня писать формы отчетов на HTML, завтра - создавать базы данных через формы Delphi, послезавтра - осваивать программную установку приложений, а потом вдруг нырять как с вершины Ниагарского водопада в детски-примитивные задачки на Паскале, да еще с рефреном "мы не проходили". Вот думаю, не работает ли под вывеской Гульназ.М. бюро добрых (небескорыстных) услуг лоботрясам-студентам? Если так, то, как говорит герой одного мультика, "это нам обидно!". :D P.S. Кстати, сейчас заметил: с циклами построения сетки несколько "перемудрил". Исправил. |
Цитата:
Владимир, а вы зачем из первоначального листинга исключили отработку нажатия клавиш? Насколько я понял, в первоначальном листинге что-то вроде прицела рисуется, а под анимацией надо понимать сдвиг прицела в определенном направлении в зависимости от нажатой клавиши. |
Цитата:
|
В первом посте прописан цикл отработки нажатия клавиш с пересчетом координат :)
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +4, время: 01:36. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.