[JS] Operators and Expression Задача 9


2
Моля за малко помощ.
9. Write an expression that checks for given point (x, y) if it is within the circle K( (1,1), 3) and out of the rectangle R(top=1, left=-1, width=6, height=2).
Някой който е направил тази задача може ли малко да обясни по какъв начин е намирал че точката не е в правоъгълника или е в правоъгълника. Какви точно формули се използват за да се потвърди че точката е в правоъгълника или е извън правоъгълника.
Предварително благодаря.



Отговори



4

Здравей,

погледни това, поне според мен рабори:

 (x < -1 || x > 5 || y < -1 || y > 1); - това е за правоъгълника - точките за x -min и x-max, съответно и за y - min и y - max,
 
(x - circle_x)*(x - circle_x) +(y - circle_y)(y - circle_y) <= r*r - това е за кръгът
 
В конкретният случай :
var res = ((x - 1) * (x - 1) + (y - 1) * (y - 1) <= 9) && (x < -1 || x > 5 || y < -1 || y > 1);

от kizisoft (803 точки)


0
И аз съм я решил по този начин...

от topsoft (420 точки)


1

Вече не си спомням съвсем точно задачата, преписах я от C# решението си, но би трябвало да е вярно. 

Edit: Когато не можеш да си представиш нещо, винаги се опитвай да си го нарисуваш ... това ще ти помогне много в програмирането. Цялата работа е просто проверяваш дали координатите на точката са извън тези които заема правоъгълника и дали е вътре в кръга. Схемата не е точна, но би трябвало да схванеш идеята.


от dimo.petrof (2887 точки)


1
@Evgeni92
Логиката тук е че при дадени височина и дължина на квадрата, както и най-висока и най-лява точка от него (координата на лявата страна и координата на горната му страна), можеш сам да си направиш логиката че като имаш горната точка и извадиш от нея височината, ще получиш координата на долната точка в квадрата. Същото важи и за лявата страна + ширината.
Това което ти остава когато имаш координатите на точката е просто да видиш дали Y е между най-високата и най-ниската точка, а X между най-лявата и най-дясната точка на квадрата. В противен случай е извън него.
Това е обяснението иначе формулите са написани от @kizisoft малко по-горе

от borisov90 (609 точки)


0

Можеш да погледнеш и моето Решение .
Булевата променлива boolInsideC  връща true ,ако точката е в окръжността Булевата променлива boolInsideR  съответно ни показва дали точката е в правоъгълника.


от Veni.Naydenov (200 точки)


0
Колеги имам един въпрос като попаднем на страните на правоъгълника това вътре или вън се счита?

от achoraev (467 точки)


0
Счита се за точка в рамките на правоъгълника. Затова и булевата ти променлива трябва да съдържа не само "<"/">", а и "<="/">=".
Например: var inTheRectangle = ((x >= -1) && (x <= 5) && (y >= -1) && (y <= 1));

от SStoyanov1 (1324 точки)