|  | 
| 
 | |||||||
| Знаете ли Вы, что ... | |
|  | ...для каждой темы существует свой раздел. Изучите структуру форума. Если соответствующего раздела нет, то всегда есть раздел "Разное" :) | 
| << Предыдущий совет - Случайный совет - Следующий совет >> | |
| Разминка для мозгов Загадки, задачи, головоломки - тренируем мозг | 
| Ответить | 
|  | Опции темы | Опции просмотра | 
|  04.07.2014 14:39 | #11 | 
|    Служу Его Божественной Тени! 
					Сообщений: 1,671
				 + 4,505 
	
		
			
				1,372/657
			
		
	 – 164 
		
			
				33/27
			
		
	  | 
            
            Фигу, как минимум направление поворота взял неправильно, и как следствие - местами координаты перепутал. x: 848.5273282043654, y: 282.8424427347886, (Впрочем, на особую точность у чисел с плавающей запятой я-б рассчитывать не стал) 
				__________________ Are you my mommy? Последний раз редактировалось DarkUser; 04.07.2014 в 14:41. | 
|  | Ответить | 
| 
"+" от:
 | 
|  04.07.2014 14:44 | #12 | 
| 
            
            Необратил внимание.   На чём считали и как? Я так прям в лоб на pl/sql что под рукой было. create or replace procedure test_robot is distance number; angle number; x number; y number; begin distance := 1000; angle := 1; x := 0; y := 0; loop if angle = 5 then angle := 1; end if; if angle = 1 then x := x+(SQRT((power(distance,2))/2)); y := y+(SQRT((power(distance,2))/2)); end if; if angle = 2 then x := x+(SQRT((power(distance,2))/2)); y := y-(SQRT((power(distance,2))/2)); end if; if angle = 3 then x := x-(SQRT((power(distance,2))/2)); y := y-(SQRT((power(distance,2))/2)); end if; if angle = 4 then x := x-(SQRT((power(distance,2))/2)); y := y+(SQRT((power(distance,2))/2)); end if; distance:=distance/2; --расстояние на 2 angle := angle+1; --поворот на 90 градусов exit when (distance < 0.001); --взрыв end loop; dbms_output.put_line(to_char(x)||'--'||to_char(y)); end test_robot; Последний раз редактировалось Nestik; 04.07.2014 в 14:47. | |
|  | Ответить | 
| 
"+" от:
 | 
|  04.07.2014 15:16 | #14 | 
|      | Код: package qrobot;
import static java.lang.Math.sqrt;
public class QRobot {
     public static void main(String[] args) {
      
       final double sqr2=sqrt(2.0)/2.0;
       double distance=1000.0;
       double vX=sqr2, vY=sqr2;
       double x=0, y=0;
       while (distance>0.001) {
          x+=vX*distance;
          y+=vY*distance;
          // Подготовка к следующей итерации
          distance*=0.5;
          vX+=vY;
          vY-=vX;
          vX+=vY;
          }
     System.out.println("x="+x+", y="+y);
     }
				__________________ Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим. | 
|  | Ответить | 
| 
3 "+" от:
 | 
| Реклама и уведомления | |
|  04.07.2014 15:33 | #15 | 
|    Служу Его Божественной Тени! 
					Сообщений: 1,671
				 + 4,505 
	
		
			
				1,372/657
			
		
	 – 164 
		
			
				33/27
			
		
	  | Код: var Bot = function(x, y, angle) {
    var state = {x: x || 0, y: y || 0, angle: angle || 0};
    this.rotate = function(angle) {
        state.angle = state.angle + angle;
        return this;
    };
    this.move = function(distance) {
        state.x = state.x + distance * Math.cos(state.angle);
        state.y = state.y + distance * Math.sin(state.angle);
        return this;
    };
    this.getPos = function() {
        return {x: state.x, y: state.y};
    };
    
    this.toString = function() {
        return JSON.stringify(state);
    }
};
var distance = 1000, angleStart = Math.PI / 4, angleStep = -Math.PI / 2
var step = 1;
var bot = new Bot(0, 0, angleStart);
while (distance > 0.001) {
    bot.move(distance);
    bot.rotate(angleStep);
    console.log(step++, ":", bot.getPos());
    distance = distance / 2;
};
alert ("step:" + step +  "; " + bot);
				__________________ Are you my mommy? | 
|  | Ответить | 
| 
2 "+" от:
 | 
|  04.07.2014 17:21 | #16 | |
|      | 
            
            На работе сказали, что эта часть кода плохо читается: Цитата: 
 А если «по-русски», то: (vX, vY) → (-vY, vX) 
				__________________ Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим. | |
|  | Ответить | 
| 
 |