Làm sao quay 1 đường thẳng như kim đồng hồ? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,974
Mấy hôm nay loay hoay mãi với bài toán: Làm sao quay 1 đường thẳng như cây kim đồng hồ

[video=youtube;TvdGb-dqzuI]http://www.youtube.com/watch?v=TvdGb-dqzuI&feature=youtu.be[/video]

Lúc đầu nghĩ rất đơn giản (vì mình đã làm việc với mấy vụ "quay" này rất nhiều lần rồi) nhưng khi bắt tay vào, chẳng hiểu sao viết mãi code cũng cứ.. chạy tầm bậy
Xin nhờ các bạn trợ giúp tôi về thuật toán bài này với
(tôi nghĩ nó không hề khó, chắc lúc này đầu tôi có vấn đề nên nghĩ không ra)
 
Hay đây, thử cùng nghiên cứu với bác ndu nào --=0
 
Upvote 0
anh có thể vẽ 1 hình tròn có bán kính tâm đồng hồ. đường tròn viền ngoài cho nó noline và sau đó cho nó xoay 360 độ là xong. anh thử xem có hợp lý không
 
Upvote 0
Mấy hôm nay loay hoay mãi với bài toán: Làm sao quay 1 đường thẳng như cây kim đồng hồ

[video=youtube;TvdGb-dqzuI]http://www.youtube.com/watch?v=TvdGb-dqzuI&feature=youtu.be[/video]

Lúc đầu nghĩ rất đơn giản (vì mình đã làm việc với mấy vụ "quay" này rất nhiều lần rồi) nhưng khi bắt tay vào, chẳng hiểu sao viết mãi code cũng cứ.. chạy tầm bậy
Xin nhờ các bạn trợ giúp tôi về thuật toán bài này với
(tôi nghĩ nó không hề khó, chắc lúc này đầu tôi có vấn đề nên nghĩ không ra)
cái này hình như thuộc món ruộc của thầy PhanTuHuong " Autocard "
cho que chảy theo tâm của đường tròn " bán kính là chiều dày của Que"
 
Upvote 0
anh có thể vẽ 1 hình tròn có bán kính tâm đồng hồ. đường tròn viền ngoài cho nó noline và sau đó cho nó xoay 360 độ là xong. anh thử xem có hợp lý không

Thì đoạn video clip tôi đưa ở trên là tôi đang tạm làm vậy đấy (cách ăn gian thì có hàng đống)
Vấn đề là tôi không muốn làm như vậy. Tôi muốn quay chỉ mình đường thẳng ấy thôi
Biết chắc chỉ là bài toán thay đổi Left, Top, Width, Height nhưng thay hoài mà cứ chạy trật lất, thế mới "điên" chứ
 
Upvote 0
Đây là file PP của em. anh có thể nhìn thấy nó để có cảm hung viết code. em chỉ nghỉ cách đơn giản là vậy thôi
 

File đính kèm

Upvote 0
Đây là file PP của em. anh có thể nhìn thấy nó để có cảm hung viết code. em chỉ nghỉ cách đơn giản là vậy thôi

Nếu chỉ cố đề quay đường thẳng ấy thì rất dễ, ta ăn gian là được
Vấn đề là bài toán thật của tôi không phải như vậy, nói chung là:
- Trong sheet có rất nhiều hình
- Hình khá phức tạp, không thể tính toán chính xác để group nó chung vào 1 hình tròn

Vậy nên tôi muốn hướng bài toán đến việc nghiên cứu cách quay 1 đường thằng (quay 1 mình nó, không ăn gian). Nếu nghiên cứu thành công thì mới áp dụng được vào bài toán thật của tôi
Vậy đấy
 
Upvote 0
Nếu chỉ cố đề quay đường thẳng ấy thì rất dễ, ta ăn gian là được
Vấn đề là bài toán thật của tôi không phải như vậy, nói chung là:
- Trong sheet có rất nhiều hình
- Hình khá phức tạp, không thể tính toán chính xác để group nó chung vào 1 hình tròn

Vậy nên tôi muốn hướng bài toán đến việc nghiên cứu cách quay 1 đường thằng (quay 1 mình nó, không ăn gian). Nếu nghiên cứu thành công thì mới áp dụng được vào bài toán thật của tôi
Vậy đấy

Quay như kim giây đồng hồ được không Thầy?
 
Upvote 0
Quay như kim giây đồng hồ được không Thầy?

Đương nhiên được rồi, miễn là:
- Không chơi ăn gian bằng cách group hình
- Không dùng Chart
Tóm lại: Quay shape 1 cách bình thường nhất và quay thành vòng tròn là được (với 1 đầu đứng yên và đầu kia quay)
 
Upvote 0
Đương nhiên được rồi, miễn là:
- Không chơi ăn gian bằng cách group hình
- Không dùng Chart
Tóm lại: Quay shape 1 cách bình thường nhất và quay thành vòng tròn là được (với 1 đầu đứng yên và đầu kia quay)
Vậy như clip dưới được không?

[video=youtube;rlguSU4vOVU]http://www.youtube.com/watch?v=rlguSU4vOVU&feature=youtu.be[/video]
 
Upvote 0

File đính kèm

Upvote 0
Thầy xem file và chỉnh sửa lại theo ý, em có lần tải cái này, bây giờ hong nhớ là của ai nữa.

Thì ra kiểu line ta cần phải là 1 FreeForm. Loại shape này cho phép set vị trí của từng đầu mút ----> Shapes("..").Nodes.SetPosition Index, X1, Y1
Kết thúc vụ án!
Cảm ơn Hai Lúa nhé
(cái này mình không biết là phải rồi, vì mới thấy lần đầu)
 
Upvote 0
Em nhớ là bác ptm có biểu đồ hình đồng hồ cơ, chạy đàng hoàng.
 
Upvote 0
Upvote 0
Cuối cùng tôi cũng làm được (theo cách của tôi)
Mời xem file
----------------
Nhân đây đố mọi người 1 câu (có thể nhiều người chưa biết)
Với 1 đoạn thẳng được vẽ trên bảng tính thì:
- Vị trị Left, Top của đoạn thẳng được tính từ đâu đến đâu?
- Kích thước Width, Height là kích thước nào?

Đây chính là mấu chốt để "phá giải" bài toán quay đoạn thẳng
----------------------------------------------
Các bạn có 2 cách để trả lời đúng 2 câu trên:
- Hoặc là tự thí nghiệm
- Hoặc là xem code và đoán
 

File đính kèm

Upvote 0
Cuối cùng tôi cũng làm được (theo cách của tôi)
Mời xem file
----------------
Nhân đây đố mọi người 1 câu (có thể nhiều người chưa biết)
Với 1 đoạn thẳng được vẽ trên bảng tính thì:
- Vị trị Left, Top của đoạn thẳng được tính từ đâu đến đâu?
- Kích thước Width, Height là kích thước nào?

Đây chính là mấu chốt để "phá giải" bài toán quay đoạn thẳng
----------------------------------------------
Các bạn có 2 cách để trả lời đúng 2 câu trên:
- Hoặc là tự thí nghiệm
- Hoặc là xem code và đoán
Hiện tại em đang online bằng điện thoại nên không xem được code và cũng không thí nghiệm được, nhưng em nghĩ là thế này: đoạn thẳng này được đặt trong 1hình chữ nhật có 2 cạnh nằm ngang và 2 cạnh thẳng đứng. Các thuộc tính Left, Top, Height, Width của đoạn thẳng chính là các thuộc tính tương ứng của hình chữ nhật.
 
Upvote 0
Hiện tại em đang online bằng điện thoại nên không xem được code và cũng không thí nghiệm được, nhưng em nghĩ là thế này: đoạn thẳng này được đặt trong 1hình chữ nhật có 2 cạnh nằm ngang và 2 cạnh thẳng đứng. Các thuộc tính Left, Top, Height, Width của đoạn thẳng chính là các thuộc tính tương ứng của hình chữ nhật.

Vậy thì thí nghiệm:
- Vẽ đường thẳng nằm ngang rồi tính Left, Top, Width, Height xem nó bằng bao nhiêu
- Giờ quay đường thằng trên khoảng 30° (Rotate chứ không phải Move nha). Nếu đúng như Phúc nhận xét thì ở hình mới vừa quay này, chắc chắn Left, Top, Width, Height sẽ thay đổi ---> Thử xem 4 giá trị ấy nó có thật thay đổi không?
 
Upvote 0
Vậy thì thí nghiệm:
- Vẽ đường thẳng nằm ngang rồi tính Left, Top, Width, Height xem nó bằng bao nhiêu
- Giờ quay đường thằng trên khoảng 30° (Rotate chứ không phải Move nha). Nếu đúng như Phúc nhận xét thì ở hình mới vừa quay này, chắc chắn Left, Top, Width, Height sẽ thay đổi ---> Thử xem 4 giá trị ấy nó có thật thay đổi không?
Tí nữa về nhà em thử liền, nhưng chắc... ngày mai mới trả lời được, bây giờ ở nhà "tắc đường lên trời" rồi, đang tranh thủ wifi ở quán cà phê. Hic hic...
 
Upvote 0
Tí nữa về nhà em thử liền, nhưng chắc... ngày mai mới trả lời được, bây giờ ở nhà "tắc đường lên trời" rồi, đang tranh thủ wifi ở quán cà phê. Hic hic...
Hồi đêm về thử, khi mới vẽ đoạn thẳng thì thấy nhận định trên là đúng, nghĩa là luôn tồn tại 1 hình chữ nhật như vậy, nhưng khi quay đường thẳng rồi vẽ lại hình chữ nhật khác thì trật lất.
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom