sadr0b0t / babbler-robots

0 stars 1 forks source link

Отображать движение по оси Z #5

Closed sadr0b0t closed 7 years ago

sadr0b0t commented 7 years ago

Отображать движение по оси Z:

Кружочек масштабировать логорифмическим масштабом, как сделано здесь https://github.com/1i7/rraptor/blob/master/RraptorPult/src/com/rraptor/pult/view/PlotterAreaView.java#L92

    /**
     * Посчитать радиус рабочего блока с учетом его "близости" к - чем выше блок
     * по оси z, тем больше радиус.
     * 
     * Вариант с логорифмическим масштабом - чем ниже блок по оси z, тем быстрее
     * меняется радиус (приятнее для визуализации работы двумерного плоттера,
     * т.к. у него рабочий блок гуляет не по всей оси z, а в меняет два
     * положения, оба близкие к поверхности стола).
     * 
     * @return
     */
    private int getWorkingBlockLogProjectionRadius(final double z) {
        int minRadius = 5;
        int maxRadius = 25;
        // прибавляем к z единичку, чтобы не уходить в отрицательные значения
        return (int) (minRadius + (maxRadius - minRadius) * Math.log(z + 1)
                / Math.log(WORKING_AREA_Z_HEIGHT));
}
sadr0b0t commented 7 years ago

Готово всё https://github.com/1i7/babbler-robots/commit/c8dfa9fd1bc018ec7ea29602489bfb9debc62af4