Odległość punktu od środka okręgu

Odległość punktu od środka okręgu
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Mam takie zadanie, które muszę rozwiązać za pomocą schematu blokowego:

Mając dany punkt P(x , y) i okrąg o środku w punkcie O(x0 , y0)
i promieniu r, powiedzieć czy punkt P leży po wewnętrznej,
zewnętrznej stronie okręgu czy też na okręgu.

i bynajmniej nie chodzi mi o gotowe rozwiązanie, tylko raczej o wskazówki. Co mi jest generalnie potrzebne do rozwiązania tego problemu? Zmienne, dla współrzędnych punktu P(x,y), a także zmienne dla tego punktu O i dla promienia, a także wzór na obliczenie odległości punktu od środka okręgu. Czy coś jeszcze?

edytowany 1x, ostatnio: Riddle
Pyxis
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 godzin
1

No i dorzuć wyrażenia warunkowe.

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0
Pyxis napisał(a):

No i dorzuć wyrażenia warunkowe.

Dlaczego? No raczej myślałem, że z warunkami?
przepraszam przeczytałem żeby odrzucić warunki. Ok wporządku. Dzięki

edytowany 2x, ostatnio: piotrek1998
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
2

Sprawdzasz, czy odległość punktu P od punktu O jest mniejsza, równa, większa od promienia.
Obliczenie odległości |OP|:
|OP| = sqrt((P.x - O.x)² + (P.y - O.y)²)


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0
Spine napisał(a):

Sprawdzasz, czy odległość punktu P od punktu O jest mniejsza, równa, większa od promienia.
Obliczenie odległości |OP|:
|OP| = sqrt((P.x - O.x)² + (P.y - O.y)²)

Czyli obliczam OP, a potem sprawdzam czy jest mniejsza większa czy równa?

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
0

Tak. Trzy instrukcje warunkowe, w zależności od których wypisywana jest odpowiednia odpowiedź.


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
K8
  • Rejestracja:ponad 10 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Małopolska
  • Postów:643
1

(x-a)^2+(y-b)^2=r^2

wlasnie wychodzi sie z rownania okregu

zalozmy ze srodek okregu to (2,2) a promien 5

wtedy rownanie przyjmuje postac

(x-2)^2+(y-2)^2=25

x=6

wtedy zeby punkt lezal na okregu liczymy (y-2)^2=25-16=9 wiec y-2=3 wiec y =5 czyli punkt (6,5) lezy na okregu

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0
krzychu82a napisał(a):

(x-a)^2+(y-b)^2=r^2

wlasnie wychodzi sie z rownania okregu

zalozmy ze srodek okregu to (2,2) a promien 5

wtedy rownanie przyjmuje postac

(x-2)^2+(y-2)^2=25

x=6

wtedy zeby punkt lezal na okregu liczymy (y-2)^2=25-16=9 wiec y-2=3 wiec y =5 czyli punkt (6,5) lezy na okregu

A skąd wziąłeś to?

y-2=3

Dobra, już wiem. Dzięki

edytowany 1x, ostatnio: piotrek1998
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Ok. A jeszcze takie pytanie mam. Czy jeżeli mam warunek, że np:
|OP| = r t
to wtedy wypisuje, że leży na okręgu. A jeżeli |OP| nie jest równe r to daje następny warunek żeby sprawdzić czy powinienem zrobić tak żeby |OP| było równe r?

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
1

Zapis w schemacie blokowym będzie wyglądać tak:

Kopiuj
// d == OP

if (d < r) // pierwszy blok warunkowy TAK
{
  cout << "P w okręgu";
}
else // pierwszy blok warunkowy NIE
{
  if (d == r) // drugi blok warunkowy TAK
  {
    cout << "P na okręgu";
  }
  else // drugi blok warunkowy NIE
  {
    cout << "P poza okręgiem";
  }
}

🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Tak to wygląda?
zad6.jpg

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

zad6.jpg

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
0

Tak tylko popraw komunikaty i oznaczenia zmiennych.

Np. masz leży poza okręgu, albo wczytujesz x, y, a potem używasz P.x, P.y.

A po drugim obrazku... O.x0 itp. lepiej zrobić jako O.x.

I schemat lepiej wyglądałby z łamanymi liniami.
screenshot-20231007174535.jpg

Najlepiej użyj programu http://www.flowgorithm.org/
Od razu będziesz mógł uruchamiać to co zrobisz.


🕹️⌨️🖥️🖱️🎮
edytowany 4x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Nie wiem czemu ale dostaje Not a number
op.png

  • op.png (11 KB) - ściągnięć: 7
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8398
0

a jaki kod dokładnie piszesz?


P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

to jest ten schemat blokowy wyżej. Nie przepisuje tego na żaden język programowania. Robie schemat blokowy i robie kompilacje programu. Robie to w programie magiczne bloczki.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
0

W Flowgorithm to wygląda tak:
screenshot-20231007181407.png
Deklaracja zmiennych typu real.
Pobieranie danych wejściowych.
No i warunki...
Załączam plik projektu: PointInCircle.zip


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Tak też mam ten program. Problem polega na tym, że robie to na studia i gość polecił te magiczne bloczki za 5 zł.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
0

@piotrek1998: Możliwe, że "magiczne bloczki" nie lubią kropek w nazwach zmiennych i formułki korzystające ze zmiennych tak nazwanych psują wynik.


🕹️⌨️🖥️🖱️🎮
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

No coś w tym jest. Jak napisałem w bloku po starcie P.x, P.y to wypluł mi błąd, że nie obsługuje takiego formatu wejść.

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Ok. Dzięki wszystkim za pomoc. Jakby coś to tematu jeszcze nie zamykam gdyby podczas analizy wyszło na jaw że czegoś nie rozumiem.

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

To zadanie również rozwiązuje się w analogiczny sposób:

"Mając dany punkt P(x,y) i kwadrat o punkcie przecięcia przekątnych
w O(x0 , y0) i boku długości a, powiedzieć czy punkt P leży wewnątrz, na
zewnątrz czy na brzegu kwadratu. Boki kwadratu są równoległe do osi
x, y."

Manna5
  • Rejestracja:prawie 6 lat
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:637
3

Czyli obliczam OP, a potem sprawdzam czy jest mniejsza większa czy równa?

Dodam jeszcze, że w praktyce prawie nigdy nie będzie równe (ze względu na niedokładność obliczeń), więc zasadniczo zakłada się jakiś margines, tzn. że jak różni się o jakąś małą wartość to tak jakby było równe.


P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Przepraszam, a co do tego zadania

"Mając dany punkt P(x,y) i kwadrat o punkcie przecięcia przekątnych
w O(x0 , y0) i boku długości a, powiedzieć czy punkt P leży wewnątrz, na
zewnątrz czy na brzegu kwadratu. Boki kwadratu są równoległe do osi
x, y."

podejście jest analogiczne? Czy możecie pomóc. Potrzebne mi to na jutro. Potrzebny mi wzór, żeby a wyliczyć. Nie wiem czy dobrze znalazłem ale czy w tym zadaniu to o to chodzi:
https://szaloneliczby.pl/w-kwadracie-abcd-w-ktorym-punkt-e-jest-srodkiem-boku-cd-poprowadzono-przekatna/

edytowany 2x, ostatnio: piotrek1998
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
1

Musisz sprawdzić czy Px mieści się w zakresie od Ox - 0.5a do Ox + 0.5a, analogicznie dla Py i Oy.
Jeśli te dwa warunki są spełnione, to punkt P jest w kwadracie.


🕹️⌨️🖥️🖱️🎮
edytowany 3x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0
Spine napisał(a):

Musisz sprawdzić czy Px mieści się w zakresie od Ox - 0.5a do Ox + 0.5a, analogicznie dla Py i Oy.
Jeśli te dwa warunki są spełnione, to punkt P jest w kwadracie.

a muszę przy tym obliczać długość a? Muszę czy nie muszę liczyć tego a? Czy może wystarczy jak podam na wejściu?

edytowany 1x, ostatnio: piotrek1998
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
0

Przecież w treści zadania masz napisane, że a jest dane.

Poza tym na jakiej podstawie chciałbyś obliczyć a?


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

No właśnie, bo ktoś mi podrzucił właśnie taki pomysł. A co do tego co tu napisałeś Ox - 0.5a do Ox + 0.5a, to powinnem to wyliczyć i zapisać do jakiejś zmiennej czy w if'ie to zawrzeć?

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Nie mogę tego znaleźć w necie w kwestii tego zakresu.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6627
1

Bo to jest tak idiotycznie proste zadanie, że wystarczy jak sobie to narysujesz.
Punkt w kwadracie w układzie współrzędnych...
Punkt poza kwadratem w układzie współrzędnych...
No i spróbuj rozwiązać postawione zadanie z danymi jakie otrzymałeś.
Dojdziesz do takiego samego wzoru, jaki Ci podałem.


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
Spine
@piotrek1998: tak, tylko problem byłby lepiej pokazany, gdyby środek kwadratu nie był w środku układu współrzędnych.
P1
czyli może być w dowolnym miejscu?
Spine
tak, bo przecież sprawdzasz zawsze czy punkt mieści się pozycji środka +/- 0.5a, bo odległość od środka do krawędzi kwadratu jest równa 0.5a
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)