Түрлі графика: Компьютерлік графикада қолданылатын, «тасбақа» арқылы сызықтар салатын векторлық графика. Logo тілінде маңызды рөл атқарады. Бағыт-бағдар, түс, қалам жайлы ақпарат.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік графика
Computer Graphics
Компьютерлік графикада, "тасбақа" графикасы – карталық жазықтықта (x және y осі) салыстырмалы курсорды ("тасбақа") пайдаланатын векторлық графика. "Тасбақа" графикасы – Logo бағдарламалау тілінің маңызды мүмкіндігі.
In computer graphics, turtle graphics are vector graphics using a relative cursor (the "turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language.
Шолу
Қайыңның үш қасиеті бар: орналасуы, бағыты (немесе бағдарлауы) және қалам. Қаламның да қасиеттері бар: түсі, ені және қосу/өшіру күйі (төмен және жоғары деп те аталады). Қайың өзінің орнына қатысты "10 бірлікке алға жылжу" және "90 градусқа солға бұрылу" сияқты командалармен қозғалады. Қайыңмен бірге жүретін қаламды да басқаруға болады, оны қосу арқылы, түсін немесе енін орнату арқылы. Оқушы, егер өзінің орнында болса, қайыңның қозғалысын түсіне алады (алдын ала болжап, себептерін анықтай алады). Сеймур Паперт мұны "денеге үйлесімді" ойлау деп атады. Толық қайың графикалық жүйе бақылау ағыны, процедуралар және рекурсияны талап етеді: көптеген қайың сурет салу бағдарламалары толық емес. Осы құрылыс бөліктерінен шаршы, үшбұрыш, шеңбер және басқа да күрделі пішіндерді құруға болады. Мысалы, қайың графикасының идеясы фракталдарды жасау үшін Линденмайер жүйесінде пайдалы. Қайың геометриясы кейде графикалық ортада қатаң координаттық жүйеге балама ретінде қолданылады.
The turtle has three attributes: a location, an orientation (or direction), and a pen. The pen, too, has attributes: color, width, and on/off state (also called down and up). The turtle moves with commands that are relative to its own position, such as "move forward 10 spaces" and "turn left 90 degrees". The pen carried by the turtle can also be controlled, by enabling it, setting its color, or setting its width. A student could understand (and predict and reason about) the turtle's motion by imagining what they would do if they were the turtle. Seymour Papert called this "body syntonic" reasoning. A full turtle graphics system requires control flow, procedures, and recursion: many turtle drawing programs fall short. From these building blocks one can build more complex shapes like squares, triangles, circles and other composite figures. The idea of turtle graphics, for example is useful in a Lindenmayer system for generating fractals. Turtle geometry is also sometimes used in graphics environments as an alternative to a strictly coordinate addressed graphics system.
Тарих
Тортқа графикалық мүмкіндіктері көбінесе Logo бағдарламалау тілімен байланысты. Сеймур Паперт 1960 жылдардың аяғында Logo-ға тасбақа графикалық қолдауын қосты, бұл оның тасбақа роботының нұсқасын қолдау үшін жасалған, ол пайдаланушының жұмыс станциясынан басқарылатын қарапайым робот, роботтың денесіне орнатылған немесе бекітілген кішкентай қайтарылатын қалам арқылы оған берілген сурет салу функцияларын орындауға арналған. Тасбақа геометриясы (x,y) координаттық жүйедегі картезиандық геометриядан біршама өзгеше жұмыс істейді, өйткені ол негізінен векторлық (яғни бастапқы нүктеден салыстырмалы бағыт және қашықтық) болып табылады, ал бит карталары немесе растрлық графика сияқты координаттарға негізделген жүйелермен салыстырғанда. Іс жүзінде, дәстүрлі модельдің орнына тасбақа геометриясын қолдану тасбақа роботының нақты қозғалыс логикасын имитациялайды. Тасбақа дәстүрлі түрде және көбінесе үшбұрыш немесе тасбақа белгішесі ретінде бейнеленеді (бірақ оны кез келген белгішемен бейнелеуге болады). Бүгінде Python бағдарламалау тілінің стандартты кітапханасына Turtle графикалық модулі кіреді. Logo-ның алдыңғы нұсқасы сияқты, Python-дағы тасбақаны іске асыру бағдарламашыларға екі өлшемді кеңістікте бір немесе бірнеше тасбақаларды басқаруға мүмкіндік береді. Стандартты Python синтаксисі, басқару ағыны және деректер құрылымдарын тасбақа модулімен бірге қолдануға болатындықтан, тасбақа Python тілін үйренетін бағдарламашылар үшін тілдің негіздерімен танысудың танымал тәсіліне айналды.
Turtle graphics are often associated with the Logo programming language. Seymour Papert added support for turtle graphics to Logo in the late 1960s to support his version of the turtle robot, a simple robot controlled from the user's workstation that is designed to carry out the drawing functions assigned to it using a small retractable pen set into or attached to the robot's body. Turtle geometry works somewhat differently from (x,y) addressed Cartesian geometry, being primarily vector based (i. e. relative direction and distance from a starting point) in comparison to coordinate addressed systems such as bitmaps or raster graphics. As a practical matter, the use of turtle geometry instead of a more traditional model mimics the actual movement logic of the turtle robot. The turtle is traditionally and most often represented pictorially either as a triangle or a turtle icon (though it can be represented by any icon). Today, the Python programming language's standard library includes a Turtle graphics module. Like its Logo predecessor, the Python implementation of turtle allows programmers to control one or more turtles in a two dimensional space. Since the standard Python syntax, control flow, and data structures can be used alongside the turtle module, turtle has become a popular way for programmers learning Python to familiarize themselves with the basics of the language.
Үш өлшемді кеңейту
Құба графигінің идеяларын үш өлшемді кеңістікке кеңейтуге болады. Бұл бірнеше координаттық модельдердің бірін пайдалану арқылы жүзеге асырылады. Көп қолданылатын түрі – түпнұсқа 2D құбасындағыдай картезиялық айналу: құбаның 2D "алға" векторы айналатын жазықтықты таңдау үшін қосымша "жоғары" вектор (нормаль вектор) анықталады; "жоғары" вектордың өзі де "алға" вектордың айналасында айналады. Нәтижесінде, құбаның екі түрлі бағыт бұрышы болады – біреуі жазықтықта, екіншісі жазықтықтың бұрышын анықтайды. Әдетте, жазықтықтың бұрышын өзгерту құбаны қозғалтпайды, бұл дәстүрлі орнатуға сәйкес келеді. Verhoeff 2010 екі векторлық тәсілді іске асырады; "жоғары" векторды "алға" вектордың айналасында айналдыру үшін "роль" командасы қолданылады. Мақала геометриялық қасиеттерді негізгі құба бағдарламаларының синтаксистік қасиеттерінен дәлелдеу үшін алгебралық теорияны әзірлеуге кіріседі. Бір түсінік – "суға түсу" командасы, шындығында, "бұрылу-роль-бұрылу" тізбегінің қысқартылған түрі. Cheloniidae Turtle Graphics – Java үшін 3D құба кітапханасы. Оның "Айналмалы Картезиялық Құбасында" банк командасы (роль сияқты) және питч командасы (суға түсу сияқты) бар. Басқа координаттық модельдерге, соның ішінде Евклид емес геометрияға да рұқсат етіледі, бірақ олар кіргізілмеген.
The ideas behind turtle graphics can be extended to include three dimensional space. This is achieved by using one of several different coordinate models. A common setup is cartesian rotational as with the original 2D turtle: an additional "up" vector (normal vector) is defined to choose the plane the turtle's 2D "forward" vector rotates in; the "up" vector itself also rotates around the "forward" vector. In effect, the turtle has two different heading angles, one within the plane and the other determining the plane's angle. Usually changing the plane's angle does not move the turtle, in line with the traditional setup. Verhoeff 2010 implements the two vector approach; a roll command is used to rotate the "up" vector around the "forward" vector. The article proceeds to develop an algebraic theory to prove geometric properties from syntactic properties of the underlying turtle programs. One of the insights is that a dive command is really a shorthand of a turn roll turn sequence. Cheloniidae Turtle Graphics is a 3D turtle library for Java. It has a bank command (same as roll) and a pitch command (same as dive) in the "Rotational Cartesian Turtle". Other coordinate models, including non Euclidean geometry, are allowed but not included.