LINUX.ORG.RU

Где и как проще рисовать графику?


1

2

Навеяно Какую книгу по программированию посоветуете для подростков (13-14 лет)

Вот раньше (цать лет тому назад) достаточно просто было нарисовать какой-нибудь график функции или кружочек:

SCREEN 7
COLOR 14, 8
PRINT "Пример графики на QBasic:"
LINE (100, 50)-(220, 150), 13, B
CIRCLE (160, 100), 20, 11
CIRCLE (160, 100), 30, 12
CIRCLE (160, 100), 40, 14
PSET (160, 100), 15
END
program s1;
uses crt,graph;
Var gd,gm: smallint;
    
begin
  Gd:=d4bit;
  Gm:=m800x600;
  initgraph(gd,gm,'');
  setcolor(2);
  setfillstyle(1,2);
  fillellipse(300,300,300,300);

  readkey;
  closegraph;
end.

И для ребёнка было все понятно, ну или почти всё.

А как теперь создать такую программу и какой язык выбрать?

★★★★★

может быть, тоже самое но под dosbox?

viator
()

$ apt-cache show kturtle

<skip>

Description: Logo educational programming environment for KDE 4 KTurtle is an educational programming environment which uses a programming language based on Logo to make programming as easy and accessible as possible.

The user issues programming language commands to control the «turtle», which draws on the canvas, making KTurtle suitable for teaching elementary mathematics, geometry and programming.

This package is part of the KDE 4 education module. Homepage: http://edu.kde.org/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 3y Task: edubuntu-desktop-gnome, edubuntu-desktop-kde

Это оно?

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Да, для DE нацистов:

$ apt-cache search turtle
kturtle - Logo educational programming environment for KDE 4
libraptor1 - Raptor RDF parser and serializer library
raptor-utils - Raptor RDF parser and serializer utilities
redland-utils - Redland Resource Description Framework (RDF) Utility programs
sugar-turtleart-activity - Sugar TurtleArt activity
ucblogo - a dialect of lisp using turtle graphics famous for teaching kids

Кто недоволен идёт лесом. Или пишет сам.

sin_a ★★★★★
()
Ответ на: processing.org от derlafff

то же, но ООП

void setup
{
size(100,100);
stroke(0);
draw();
}
void draw()
{
noLoop();
line(0,0,5,5);
stroke(15);
circle(0,0,10);
}
derlafff ★★★★★
()

>А как теперь создать такую программу и какой язык выбрать?

Лучшее, что я видел в старом духе (тоже ностальгирую по графике в Бейсике) - это Питон. Есть под него какие-то либы (на память не скажу, искать влом), позволяющие рисовать в таком духе. Уже на современном уровне, в GUI. Типа, одной командой открываешь окно фиксированных или изменяемых размеров и рисуешь туда примитивами. Все вопросы отрисовки и взаимодействия с GUI библиотека на себя берёт.

KRoN73 ★★★★★
()

tkinter

Пара команд - и можно рисовать ;)

from Tkinter import *
tk = Tk()
cnvMain=Canvas(tk,height=100,width=100)
cnvMain.pack(fill=BOTH)
cnvMain.create_oval(40,40,60,60)
cnvMain.create_oval(45,45,50,50,fill='red')
cnvMain.create_oval(50,45,55,50,fill='red')
cnvMain.create_line(45,55,56,55)
tk.mainloop()
mclaudt
()
Ответ на: комментарий от mclaudt

Эмулятор УКНЦ + Кенгурёнок Ру сделают Tk по понятности =)

GAMer ★★★★★
()
Ответ на: комментарий от guilder

dosbox + quickbasic 4.5

Вот от этого и хочется уйти.

AlexVR ★★★★★
() автор топика

Вах! Зачэм бэсик, дарагой? Ностальгия оно понятно, однакож есть вот что:

http://processing.org/

Там пхнуть ссылко на exhibition/ и посмотреть что люди делают.

Ежели есть мак, то можно вот это:

http://nodebox.net/

Оно питоновое. Много чего делается в 5 строк. Я не знаю может есть порты под что-то другое, на маке юзаю мультики рисовать для презентаций.

ebantrop
()
Ответ на: комментарий от ebantrop

>>Ежели есть мак, то можно вот это http://nodebox.net/

Ну и при чем тут мак-то, если оно питоновское? Если только что привязками к QuickTime, но это последнее звено погоды не делает.

mclaudt
()
Ответ на: Nodebox от anonymous

Значит сделали. Клево. Я просто не интерисовался. Как рисовалка мне эта прога показалась очень удобной. Нужно было отрисовать мульт по-бырому я ее нашел. Года три уже как не обновлял.

ebantrop
()
Ответ на: комментарий от mclaudt

По ссылке сходить палец отвалится?

Там написано: «NodeBox is a Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie.»

ebantrop
()
Ответ на: комментарий от ebantrop

Так я потому и спрашиваю, чего там от мака кроме завязки на их чертов квиктайм? Верно, ничего. А значит, можно смело закопать и использовать аналоги, не запачканные клубничной смазкой.

mclaudt
()

А чем тебе gnuplot не угодил?

ugoday ★★★★★
()
Ответ на: комментарий от mclaudt

А хрен его знает что там окромя квиктайма еще присобачено. Честно говоря даже не смотрел в исходники. В доках где-то было что можно юзать маковы апи типа какавы и кварца. Ежели портировали под что-то другое стал быть отвязали.

ebantrop
()

Или, например, такое изображение получается на R совершенно примитивным кодом:

plot(1:5,seq(1,10,length=5),type="n",xlab="",ylab="",main="R лучше басика")
draw.circle(2,4,c(1,0.66,0.33),border="purple",
col=c("#ff00ff","#ff77ff","#ffccff"),lty=1,lwd=1)
draw.circle(2.5,8,0.6,border="red",lty=3,lwd=3)
draw.circle(4,3,0.7,border="green",lty=1,lwd=1)
draw.circle(3.5,7,0.8,border="blue",lty=2,lwd=2)
lines(c(1,5),c(1,10))
ugoday ★★★★★
()
Ответ на: комментарий от KRoN73

Во! http://img258.imageshack.us/img258/9882/pythongasp.png :)

Вот это действительно просто и с перспективой на дальнейшее развитие.

Для Ъ:

# -*- coding: utf-8 -*-

from gasp import *

# qbasic-like colors
c8 = 128, 128, 128
c11 = 0, 255, 255
c12 = 255, 0, 0
c13 = 255, 0 ,255
c14 = 255, 255, 0
c15 = 255, 255, 255

begin_graphics(background=c8)

Text("Пример графики на GASP", (0,0), c15)
Box((110, 100), 110, 100, color=c13)
Circle((160, 100), 20, color=c11)
Circle((160, 100), 30, color=c12)
Circle((160, 100), 40, color=c14)

update_when('key_pressed')
end_graphics()

Хотя что бы поставить gasp по OpenSuse пришлось повозиться. Пакета нет. easy_install gasp - непрошло из-за отсутствия файла CHANGES.txt в архиве. %)

AlexVR ★★★★★
() автор топика
Ответ на: комментарий от AlexVR

я не знаю, это надо у анонимуса спросить в соседней теме

Но вообще, там все достаточно примитивно

Love5an
()

Я бы предложил декларативные языки вроде QML и JavaFX. Чтобы было что-то вроде этого:

Reactangle
{
   width: 100
   height: 200
   color: red
   effect: DropShadow
   {
       radius: 10
       color: gray
   }
}

Просто и понятно.

Amp ★★★
()
Ответ на: комментарий от anonymous

> processing.org

Посмотреть примеры не смог, так как не могу заставить работать яву ни в в FireFox ни в Opera.

Скажыте, там есть средства отслеживания нажатий клавиш на клавиатуре, работа с мышкой, ввод/вывод русскоязычного текста?

xintrea
()

В школьной сборке (2010, русифицирована, работает с wine) BlackBox Component Builder
есть модули для школьного рисования:
i21eduЧерепашка — рисование Черепашкой;
TPGraphics — рисование в стиле Турбо Паскаля.

quickquest ★★★★★
()
Ответ на: комментарий от KRoN73

Суть твоих претензий абсолютно не ясна.

ugoday ★★★★★
()
Ответ на: комментарий от KRoN73

А в чём проблема с .pdf? Стандарт де-факто, как бы. Алсо, я же знаю, что без нормальной демонстрации возможностей хуй что почешется сам поискать. Так что вот. Да и презенташка неплоха.

anonymous
()

Java :)

import java.awt.*;
import javax.swing.*;

public class OvalPanelCanvas extends JPanel {
  public OvalPanelCanvas() {
  }
  public void paintComponent(Graphics g) {
    int width = getWidth();
    int height = getHeight();
    g.setColor(Color.black);
    g.drawOval(0, 0, width, height);
  }
  public static void main(String args[]) {
    JFrame frame = new JFrame("Oval Sample");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new OvalPanelCanvas());
    frame.setSize(300, 200);
    frame.setVisible(true);
  }
}

Result

drakmail ★★★★
()
Ответ на: комментарий от anonymous

Видимо, местные ИКСПЕРТЫ даже не знают о том, что в стандартную поставку питона входит модуль Turtle, более чем покрывающий все нужды обучения. http://us.pycon.org/media/2009/talkdata/PyCon2009/065/SevenWaysToUseTurtle-Py...

Что же все считают что учить программированию надо с черепашки. Она скорее для второго-третьего этапа.

З.Ы. Хотя наличие такой библиотеки для питона, еще раз выдвигает его на роль более удачного языка, для первоначального изучения.

AlexVR ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Мне достаточно того, что оно распространено, открывается на десктопе, ридере и сотовом и везде выглядит одинаково. Проблемы негров с калькуляторами шерифа не ебут. Алсо, возможно, для «поборников» будет новостью, но подавляющее большинство публикаций и слайдов выкладывается в .pdf, а их призрачные притязания слишком несущественны для меня, чтобы я ещё занимался конвертацией во что-нибудь другое ради каких-то безымянных пидорасов.

anonymous
()
Ответ на: комментарий от drakmail

> Result

фу, винда, жаба…

вот, на красивом Qt и интуитивно понятном перле:

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use QtCore4;
use QtGui4;

sub main
{
    my $app = Qt::Application(\@ARGV);

    my $scene = Qt::GraphicsScene(0, 0, 400, 400);

    $scene->addEllipse(100, 100, 200, 200, Qt::Pen(Qt::Brush(Qt::red()), 1), Qt::Brush(Qt::green()));

    my $view = Qt::GraphicsView($scene);
    $view->setRenderHint(Qt::Painter::Antialiasing());
    $view->setViewportUpdateMode(Qt::GraphicsView::BoundingRectViewportUpdate());
    $view->setBackgroundBrush(Qt::Brush(Qt::Color(230, 200, 167)));
    $view->setWindowTitle('Пример графики на Qt/perl');
    $view->show();

    return $app->exec();
}

exit main();

$result

arsi ★★★★★
()
Ответ на: комментарий от ugoday

> вот, зачем это надо, когда есть R?

R патриконеугоден ;)

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.