Форум программистов, компьютерный форум CyberForum.ru

java to c - C++

Восстановить пароль Регистрация
 
Solka
4 / 3 / 1
Регистрация: 02.10.2010
Сообщений: 20
24.04.2011, 17:15     java to c #1
Помогите перевести код с java на c.
Или обясните что и как сдесь работает (алгоритм)

Java
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package tree;
 
import base.*;
import java.awt.*;
 
public class Tree extends Solid
{
    Colorer treeColorer = new SimpleColorer(Color.RED, Color.ORANGE);
    Colorer leafColorer = new SimpleColorer(new Color(0, 127, 0), Color.YELLOW);
 
    // Создать конус
    public static Solid createCone(double height, double radius, int countQuadrangles, Colorer colorer)
    {
        Solid solid = new Solid();
        double phi1, phi2;
    
        for (int i = 0; i < countQuadrangles; ++i)
        {
            phi1 = 2 * Math.PI / countQuadrangles * i;
            phi2 = 2 * Math.PI / countQuadrangles * (i + 1);
            Vector[] vertexes = new Vector[3];
            vertexes[0] = new Vector(radius * Math.cos(phi1), radius * Math.sin(phi1), 0);
            vertexes[1] = new Vector(radius * Math.cos(phi2), radius * Math.sin(phi2), 0);
            vertexes[2] = new Vector(0.0, 0.0, height);
            solid.add(new Triangle(vertexes, colorer));
        }
        
        return solid;
    }   
    
    public static Solid createLeaf(double size, Colorer colorer)
    {
        Solid solid = new Solid();
        Vector[] vertexes = new Vector[3];
        vertexes[0] = new Vector(0.0, 0.0, 0.0);
        vertexes[1] = new Vector(0.0, size / 3.0, size / 2.0);
        vertexes[2] = new Vector(0.0, 0, size);
        solid.add(new Triangle(vertexes, colorer));
        vertexes = new Vector[3];
        vertexes[0] = new Vector(0.0, 0, size);
        vertexes[1] = new Vector(0.0, -size / 3.0, size / 2.0);
        vertexes[2] = new Vector(0.0, 0.0, 0.0);
        solid.add(new Triangle(vertexes, colorer));
        return solid;
    }       
    
    
    void branch(int n, double size, double radius, Transform T)
    {
        if (--n > 0)
        {
            int count = (int)((n == 1) ? (size / 8 + 1) : (size / 25));
            for (int i = 0; i < count ; ++i)
            {
                double r = (Math.random() * 0.9 + 0.1) * size;
                branch(n, (size - r) * 0.7, (size - r) / 25.0,
                    Transform.createTranslateZ((size - r) / 30.0).composite(
                    Transform.createRotateY(Math.PI / 3.0).composite(
                    Transform.createRotateZ(2.0 * Math.PI * Math.random()).composite(
                    Transform.createTranslateZ(r).composite(
                    T)))));
            }
            for (int i = 0; i < 5 ; ++i)
            {
                double r = (Math.random() * 0.1) * size;
                branch(1, 0, 0,
                    Transform.createTranslateZ((size - r) / 30.0).composite(
                    Transform.createRotateY(Math.PI / 3.0).composite(
                    Transform.createRotateZ(2.0 * Math.PI * Math.random()).composite(
                    Transform.createTranslateZ(r).composite(
                    T)))));
            }           
            addAll(T.apply(createCone(size, radius, 10, treeColorer)));
        }
        else
            addAll(T.apply(createLeaf(20, leafColorer)));
    }
    
    Tree()
    {
        branch(4, 600.0, 60.0, Transform.createTranslateZ(-300));
    }
}
Если чего то сдесь не хватает то вот ссылка на исходник
http://fractalworld.xaoc.ru/files/tree.tar.bz2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 17:15     java to c
Посмотрите здесь:

C++ Из Java в C++
C++ c java на с++
C++ java ----> C++
C++ С++ и java
Из Java в c++ C++
С++ и Java C++
C++ из Java в С++
C++ c++ и java

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru