Robię telefon komórkowy (w sensie Caldera), wycinając laserowo plik wektorowy (Corel Draw). Mam zestaw konturów, które będą poszczególnymi elementami.
Czy w programie Corel (lub innym programie) istnieje sposób obliczenia środka masy, więc umieszczam otwory, aby zawiesić elementy?
Odpowiedzi:
Ta odpowiedź może się nie liczyć, jeśli potrzebujesz ściśle programowego rozwiązania, ale uznałem ją za interesującą, więc pomyślałem, że podzielę się nią. :)
Matematycznym sposobem byłoby rozbicie kształtu na zbiór trójkątów i wykonanie średniej ważonej ich poszczególnych środków ciężkości. Nie sądzę, żeby któryś z popularnych programów do rysowania zautomatyzował to dla ciebie. Można to zrobić ręcznie, ale może nie być warte twojego czasu.
Ta strona zawiera podział podejścia fizycznego, który może być szybszy w stosunku do twojego czasu: http://www.scn.org/~bh162/center_of_mass.pdf
Podstawową przesłanką jest to, że obiekty o jednolitej grubości można określić za pomocą 2-3 pionowych linii z losowych punktów na lub w pobliżu krawędzi kształtu.
źródło
Utknąłem z tym samym dylematem i używając Adobe Illustrator napisałem skrypt, który umieszcza małą dziurę w środku ciężkości nieregularnego wielokąta. Działa świetnie! Po tej iteracji dodałem również kilka urywków, aby utworzyć otwór tuż nad środkiem ciężkości, aby upewnić się, że część jest dobrze wyważona po zawieszeniu tylko z tego jednego punktu.
Skrypt do pobrania: CentroidFinder.js
Wpis na blogu: Znajdowanie środka ciężkości (centroid) wielokąta w programie Adobe Illustrator
źródło
Eksportuję do bardzo dużego pliku PNG o wielkości 3000 pikseli. Następnie przeciągam i upuszczam do Algodoo (który jest teraz bezpłatny). Ustaw oś w żądanym miejscu i zagraj w symulację, a pokaże Ci, gdzie jest niezrównoważona. Następnie możesz dostosowywać rysunek, aż znajdzie się w odpowiednim miejscu.
źródło