neo4j сохранить в базе данных и отобразить в браузере neo4j java

Круг действительно плохой парень. Так что хороший способ - избежать истинного круга, если сможете. Если вы делаете проверку на столкновение в играх, вы можете пойти с некоторыми упрощениями и иметь только 3 продукта-точки и несколько сравнений.

Я называю эту «жирную точку» или «тонкий круг». своего рода эллипс с нулевым радиусом в направлении, параллельном отрезку. но полный радиус в направлении, перпендикулярном сегменту

. Во-первых, я бы рассмотрел переименование и переключение системы координат, чтобы избежать чрезмерных данных:

s0s1 = B-A;
s0qp = C-A;
rSqr = r*r;

Во-вторых, индекс h в hvec2f означает вектор должен поддерживать горизонтальные операции, такие как точка () / det (). Это означает, что его компоненты должны быть помещены в отдельные регистры xmm, чтобы избежать перетасовки / hadd'ing / hsub'ing. И здесь мы идем с самой совершенной версией самого простого обнаружения столкновения для 2D-игры:

bool fat_point_collides_segment(const hvec2f& s0qp, const hvec2f& s0s1, const float& rSqr) {
    auto a = dot(s0s1, s0s1);
    //if( a != 0 ) // if you haven't zero-length segments omit this, as it would save you 1 _mm_comineq_ss() instruction and 1 memory fetch
    {
        auto b = dot(s0s1, s0qp);
        auto t = b / a; // length of projection of s0qp onto s0s1
        //std::cout << "t = " << t << "\n";
        if ((t >= 0) && (t <= 1)) // 
        {
            auto c = dot(s0qp, s0qp);
            auto r2 = c - a * t * t;
            return (r2 <= rSqr); // true if collides
        }
    }   
    return false;
}

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

0
задан meistermeier 13 July 2018 в 15:38
поделиться

1 ответ

Когда вы создаете базу данных в joava, вам также необходимо включить протокол BOLT. Вы можете посмотреть документацию: https://neo4j.com/docs/java-reference/current/tutorials-java-embedded/#tutorials-java-embedded-bolt

Сначала импортируйте банку болтов в ваш проект

  <dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-bolt</artifactId>
    <version>3.4.0</version>
  </dependency>

И затем настройте базу данных, чтобы включить протокол болтов:

GraphDatabaseSettings.BoltConnector bolt = GraphDatabaseSettings.boltConnector( "0" );

GraphDatabaseService graphDb = new GraphDatabaseFactory()
        .newEmbeddedDatabaseBuilder( DB_PATH )
        .setConfig( bolt.type, "BOLT" )
        .setConfig( bolt.enabled, "true" )
        .setConfig( bolt.address, "localhost:7687" )
        .newGraphDatabase();

В этот момент вы можете взять neo4j настольную версию, а также создать удаленное соединение и использовать браузер.

0
ответ дан logisima 17 August 2018 в 12:34
поделиться
  • 1
    Итак, с этим я могу запустить сервер и сразу просмотреть его? – Jose Luis Montalvo Ferreiro 16 July 2018 в 19:56
  • 2
    с тем, что вы включили протолк BOLT Neo4j, вы можете использовать браузер Neo4j для запроса и отображения вашего запроса. Браузер Neo4j - это просто клиент, который использует протокол BOLT – logisima 17 July 2018 в 05:34
Другие вопросы по тегам:

Похожие вопросы: