2 điểm bởi GN⁺ 2024-02-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Con trỏ chuột nghiêng ngày nay được giải thích là kết quả của một hình dạng đã được cố định từ thời Xerox PARC, khi trên màn hình độ phân giải thấp nó dễ vẽ hơn và cũng dễ nhận ra hơn
  • Con trỏ ban đầu của Douglas Engelbart là mũi tên hướng lên, và câu trả lời được đánh giá cao nhất cho biết nó đã được đổi thành mũi tên nghiêng tương tự hiện nay trên các máy của Xerox PARC
  • Trên màn hình pixel độ phân giải thấp, các đường 0 độ và 45 độ trông tương đối mượt ngay cả khi không có anti-aliasing, nên dễ tạo ra một con trỏ có đầu nhọn rõ ràng hơn mũi tên thẳng hướng lên
  • Tư thế chỉ vào màn hình bằng tay phải, độ tương phản về hướng trên các màn hình có nhiều yếu tố ngang và dọc, cùng với góc sử dụng của que chỉ thực tế cũng được nêu như những lý do bổ trợ
  • Có giải thích rằng gốc tọa độ của con trỏ được đặt ở góc trên bên trái để giảm việc tính toán vị trí nhấp, nhưng trong phần bình luận điều này tiếp tục bị phản bác dựa trên nguồn gốc và các ví dụ từ Xerox Alto

Con trỏ nghiêng được định hình tại Xerox PARC

  • Chuột và con trỏ ban đầu do Douglas Engelbart tạo ra, và hình dạng đầu tiên là một mũi tên hướng lên
  • Sau đó trên các máy của Xerox PARC, con trỏ được đổi thành mũi tên nghiêng
  • Với độ phân giải màn hình thấp thời đó, cách vẽ một cạnh của mũi tên bằng đường thẳng đứng và cạnh còn lại bằng đường chéo 45 độ vừa dễ hơn vừa có khả năng nhận diện tốt hơn
  • Cách giải thích này dựa trên tài liệu về chuột quang học của Xerox PARC và các tư liệu về lịch sử GUI

Những góc hiển thị rõ trên lưới pixel

  • Trên màn hình dựa trên pixel hình chữ nhật, rất khó biểu diễn một đầu mũi tên sắc nhọn mà không dùng anti-aliasing
  • Các đường ngang, dọc 0 độ và đường 45 độ là những hướng tiêu biểu trông tương đối mượt trên lưới pixel
  • Nhiều con trỏ mũi tên tận dụng đặc điểm này bằng cách tạo một cạnh là đường thẳng đứng và cạnh còn lại là đường 45 độ
  • Khi đó, đường phân giác ở giữa của mũi tên sẽ nghiêng khoảng 22,5 độ
  • Vì khả năng nhận ra đầu nhọn quan trọng hơn phần đuôi, độ sắc của đầu mũi tên được ưu tiên

Tranh luận quanh điểm nhấp và việc tính gốc tọa độ

  • Một câu trả lời cho rằng vì gốc của bitmap con trỏ nằm ở góc trên bên trái, việc nghiêng mũi tên sang trái giúp giảm bớt tính toán vị trí nhấp
  • Cách giải thích này dẫn nguồn từ một bài viết trên Reddit, nhưng trong phần bình luận có phản bác rằng bài đó chỉ là bản chép lại từ một bài Yahoo! Answers không có căn cứ trích dẫn
  • Các bình luận phản bác chỉ ra rằng ngay trên Xerox Alto cũng có những con trỏ mà hotspot không phải là (0,0)
    • Con trỏ hình chữ thập trong vòng tròn và con trỏ mũi tên hướng sang phải được nêu làm ví dụ
  • Theo một bình luận khác, khi triển khai con trỏ thường có trường hotspot, nên các con trỏ như hình chữ thập hoàn toàn khả thi
  • Cũng có ước tính cho rằng chi phí tính toán nhỏ đến mức, ngay cả theo tiêu chuẩn thập niên 1970, vẫn đủ nằm trong khoảng thời gian giữa các lần cập nhật chuột

Cách lý giải rằng nó giống bàn tay và que chỉ ngoài đời

  • Nhiều câu trả lời cho rằng mũi tên nghiêng trông giống tư thế bàn tay phải khi chỉ vào màn hình
  • Cách lý giải này được xem là gần với trải nghiệm chủ quan hơn là một căn cứ lịch sử
  • Cũng có câu trả lời cho rằng điều này phản ánh môi trường ưu tiên người thuận tay phải, kèm theo giải thích rằng trước đây nếu đổi nút nhấp trái/phải thì mũi tên sẽ quay sang hướng ngược lại
  • Một câu trả lời khác cho rằng que chỉ ngoài đời cũng thường không chĩa vuông góc vào màn hình mà được dùng ở góc khoảng 30–45 độ, và góc này dẫn ánh nhìn tới đầu nhọn tốt hơn
  • Cũng có ý kiến cho rằng mũi tên thẳng hướng lên dễ tạo cảm giác đang chỉ vào toàn bộ phía trên hơn là nhắm vào một điểm cụ thể

Giải thích bổ trợ về nhận thức thị giác và việc che khuất màn hình

  • Một câu trả lời cho rằng con trỏ nghiêng có thể thuận lợi hơn cả ở khía cạnh nhận thức thị giác mức thấp
  • Các vùng thị giác V1 và V2 xử lý những đặc trưng mức thấp như màu sắc, độ sáng, kích thước và hướng
  • Vì trên màn hình có nhiều yếu tố ngang và dọc, một đường nghiêng có thể nổi bật hơn nhờ popout effect do có hướng khác với xung quanh
  • Câu trả lời này tham khảo nghiên cứu năm 1988 của Treisman và Gormican cùng cuốn Visual Thinking for Design của Colin Ware
  • Trong phần bình luận có phản hồi rằng đây có thể không phải nguyên nhân lịch sử thực sự, nhưng vẫn là một lý do bổ trợ thú vị

Các ví dụ về con trỏ thẳng và hình dạng khác

  • Trong một số giao diện ít được biết đến hơn, đã từng có trường hợp dùng con trỏ mũi tên thẳng
  • Phần bình luận cũng nhắc tới việc con trỏ bàn tay trên liên kết trong trình duyệt có dạng thẳng
  • Có bình luận cho rằng ngay cả trong các ứng dụng hiện đại cũng vẫn có ví dụ dùng mũi tên thẳng
  • Con trỏ hình bàn tay được nêu trong câu hỏi có vẻ có góc nhỏ hơn mũi tên khi xuất hiện trên nút bấm, nhưng các câu trả lời chính trong bài chủ yếu bàn về lịch sử và hình dạng của con trỏ mũi tên mặc định

1 bình luận

 
GN⁺ 2024-02-05
Ý kiến trên Hacker News
  • Hơi đáng sợ khi một trong những câu trả lời được chấm điểm cao cho câu hỏi này (188 điểm) lại hoàn toàn sai. Câu trả lời đó giải thích rằng hotspot (0,0) giúp đơn giản hóa phép tính cập nhật vị trí con trỏ nên không cần cộng thêm độ lệch (X,Y)
    https://ux.stackexchange.com/a/52349/43259
    Nhưng chưa bao giờ mũi tên là con trỏ duy nhất. Ngay cả Macintosh đầu tiên cũng đã có con trỏ I-beam cho văn bản, nhiều kiểu dấu thập khác nhau, v.v.; chỉ cần cung cấp bitmap, mặt nạ trong suốt và vị trí hotspot là có thể định nghĩa con trỏ tùy ý
    Có thể thấy những con trỏ này trong Inside Macintosh Volume I bản gốc và cả các công trình trước đó ở PARC
    https://web.archive.org/web/20230114223619/https://vintageap...
    Trang 50 của PDF (trang I-38 trong tài liệu) có các con trỏ mẫu, và trang 158 của PDF (trang I-146 trong tài liệu) có chi tiết pixel và vị trí hotspot của nhiều con trỏ. Một điều thú vị là hotspot của con trỏ mũi tên không phải (0,0) mà là (1,1)
    Tôi muốn biết có ai giải thích được tại sao không. Hình như trước đây tôi từng biết, nhưng lâu quá rồi nên quên mất
    Trang này cũng có định nghĩa cấu trúc Cursor: một record gồm data, mask, hotSpot, còn Point thì gần như là một cặp tọa độ dọc-ngang như được định nghĩa ở trang I-139
    Điều đáng sợ không phải là có người nảy ra ý tưởng rằng (0,0) giúp tiết kiệm vài lệnh. Trước khi nhận ra rằng các hình dạng con trỏ khác nhau cần các hotspot khác nhau, đó là một giả thuyết khá hợp lý. Điều thực sự đáng sợ là có tới 188 người bấm thích câu trả lời đó
    • Chỉ đáng sợ lúc đầu thôi, sau rồi sẽ quen. Trên mọi mạng xã hội, bao gồm cả HN, luôn có những người không thật sự hiểu nhưng vẫn đồng ý rằng câu trả lời nghe có vẻ hợp lý là đúng
      Bạn tôi là kế toán thuế thì bị downvote khi sửa lại cách thuế thực sự vận hành, còn vợ tôi là nhà ngôn ngữ học cũng bị downvote khi giải thích rằng “ngôn ngữ không vận hành như vậy”. Không phải đáng sợ, mà là chuyện thường ngày
    • Điều tương tự cũng có thể thấy trong mã nguồn Apple Lisa: https://info.computerhistory.org/apple-lisa-code
      Trang Stack Overflow được liên kết thực chất gần như chỉ là suy đoán thuần túy
      Lịch sử không phải là một tập hợp câu đố logic, mà là công việc ghép nối tài liệu và bằng chứng. Tôi chưa thấy căn cứ nào trong tài liệu thời đó khẳng định có chủ ý như vậy, nên câu hỏi này vẫn chưa có đáp án
      Bằng chứng quyết định sẽ là một nguồn chính từ trước khoảng năm 1988 (Microsoft/Xerox/Apple) có tên tệp như cursor.bitmap hoặc mã như declare cursor_default = [ [ 1, 0 ... ] ];, kèm chú thích giải thích vì sao họ chọn kiểu con trỏ đó. Các nguồn nhỏ hơn như Acorn, Digital Research, Quarterdeck, NeWS, VisiOn, MIT Athena(X) cũng có thể chấp nhận được
      Sau khi tìm ra câu chuyện về light pen rồi dùng nó để biện hộ cho kiểu con trỏ chuột là đang suy ngược từ giả thuyết, nên khá yếu và không loại trừ được các khả năng khác. Cần phải khớp thật chặt chẽ
    • Mũi tên có đường viền trắng, nên hotspot nằm ở đầu mũi tên màu đen tại (1,1)
    • Posy có một video tuyệt vời nói về lịch sử con trỏ chuột, và còn cung cấp cả bộ con trỏ do anh ấy tự làm
      https://www.youtube.com/watch?v=YThelfB2fvg
      http://www.michieldb.nl/other/cursors/
    • Tôi đã nói điều này từ 10 năm trước rồi: https://news.ycombinator.com/item?id=7253841
      Có lẽ 10 năm nữa tôi vẫn sẽ lại nói y như vậy
  • Tôi chưa đọc hết toàn bộ tài liệu về chủ đề này, nhưng tôi đoán lý do con trỏ bị nghiêng cũng giống lý do nó nghiêng sang trái
    Con người là sinh vật chế tạo và sử dụng công cụ, nên theo thời gian công cụ trở thành phần kéo dài của cơ thể. Dù đầu công cụ có tách khỏi bàn tay theo nghĩa cơ học hay ảo thì vẫn vậy, và công cụ này có vẻ được thiết kế như một công cụ dành cho người thuận tay phải đang được cầm và đưa vào trong màn hình
    Nếu đó không phải là lý do của hướng nghiêng, thì cũng chẳng có lý do gì để nó không nghiêng theo hướng ngược lại. Nếu bạn thuận tay phải, hãy thử dùng con trỏ có phần bên phải đi trước. Không chỉ trông kỳ lạ, mà còn cho cảm giác như một công cụ cầm bằng tay trái
    Tôi không biết điều đó có ảnh hưởng đến người thuận tay trái hay không. Dù là người thuận tay trái, tôi vẫn luôn thấy dùng chuột bằng tay trái có gì đó kỳ kỳ, nhưng không rõ có phải vì độ nghiêng hay không
    • Tôi thuận tay trái và luôn dùng chuột bằng tay trái, nhưng chưa bao giờ cảm thấy độ nghiêng của con trỏ là lạ hay sai cả
      Tôi đã dùng chuột máy tính theo nhiều cách suốt hơn 30 năm, nên có thể đã quá quen và cảm giác lạ biến mất rồi. Có khi những người thuận tay trái mới dùng chuột sẽ thấy độ nghiêng của con trỏ hơi lạ
    • Điều quan trọng là bạn dùng chuột bằng tay nào. Tôi viết và làm hầu hết mọi việc bằng tay trái, nhưng dùng chuột bằng tay phải, và tôi không thấy kỳ lạ
    • Thay vì nói “chưa đọc hết mọi thứ về chủ đề này”, trong trường hợp này thực ra chỉ cần đọc câu trả lời thứ hai ở trang được liên kết là đủ. Dù vậy, có vẻ cả hai đều đang chạm đúng vào một phần nào đó
    • Không ai hỏi vì sao nó lại hướng lên trên, nhưng lý do là như nhau. Bình thường tay của ta ở thấp hơn tầm mắt
      Về mặt lý thuyết, con trỏ trực quan nhất có thể là dấu thập, nhưng tôi đã thử dùng và không thích
    • Cảm giác lạ vì nó giống một công cụ cầm tay trái chỉ tồn tại trong chốc lát thôi. Tôi thuận tay phải nhưng bị chấn thương do căng thẳng lặp lại ở cổ tay (RSI) khi dùng chuột tay phải, nên đã dùng tay trái hơn 10 năm và không có vấn đề gì
      Bộ não thích nghi cực kỳ tốt. Ví dụ, chúng ta cũng thích nghi rất nhanh với việc nhìn thế giới bị lộn ngược

https://theguardian.com/education/2012/nov/12/improbable-res...

  • Còn thiếu việc các câu trả lời trên Stack Overflow không nhắc đến Alan Kay. Người tạo ra con trỏ chuột nghiêng tại PARC là Alan Kay, và khi được hỏi câu này ông đã trả lời như sau
    “Tôi đã tạo ra hình dạng con trỏ chuột của PARC. Trên lưới pixel 16x16 1-bit mà chiếc Alto của PARC dùng cho con trỏ, nếu để một cạnh của mũi tên thẳng đứng và cạnh còn lại nghiêng thì sẽ tạo ra một đầu mũi tên trông ổn. Tôi cũng đã thiết kế và tạo ra nhiều phông chữ bitmap thời kỳ đầu. Và rồi, như nhiều thứ khác trong ngành máy tính, nó cứ thế thành chuẩn cố định.”
    ¹ https://jameshk.com/mouse-cursor

  • Đã đến lúc xem video YouTube yêu thích của tôi từ Posy (Michiel de Boer), Mouse cursor history (and why I made my own)
    https://www.youtube.com/watch?v=YThelfB2fvg
    Video này điểm qua lịch sử của con trỏ chuột và các vấn đề của một số con trỏ tiêu chuẩn, đồng thời cũng cho thấy những con trỏ lịch sử không bị nghiêng
    Đây là một video ngắn tuyệt vời khiến bạn cảm thấy Internet thật đáng giá, và cũng là video của tác giả bộ Posy’s Cursor Pack: http://www.michieldb.nl/other/cursors/

    • Không chắc là hoàn toàn chính xác. Ví dụ, nó hiển thị con trỏ IIGS như con trỏ “Color mode” của Lisa
      Nó cũng hoàn toàn không đề cập đến môi trường NeXT, DPS, sự khác biệt về DPI, con trỏ mũi tên đen trắng riêng của nó, hay cách chính con trỏ đó thực sự đi vào Mac OS X thay vì các con trỏ sau System 1
    • Trên Windows tôi dùng bộ này. Nhìn đẹp, còn trên Ubuntu thì tôi dùng bản port Linux ở đây
      https://github.com/simtrami/posy-improved-cursor-linux
  • Câu hỏi thực sự là vì sao con trỏ Windows lại trông không hoàn hảo
    https://mspoweruser.com/wp-content/uploads/2020/04/windows-c...

    • Trang web nguồn của hình đó[0], và tiếp nữa là trang Reddit mà nó dẫn nguồn lại[1], có ám chỉ bằng phép so sánh tới hiện tượng có thật là cân bằng thị giác[2], nhưng không giải thích thuyết phục được vì sao điều đó áp dụng cho trường hợp cụ thể này
      Một cách giải thích khác là sự không hoàn hảo có chủ đích này được giữ lại để phù hợp với sự không hoàn hảo không thể tránh khỏi khi đồ họa con trỏ ban đầu được vẽ dưới dạng pixel art 1-bit độ phân giải rất thấp. Chúng ta đã quen với vẻ hơi lệch đó nên thấy nó là đúng. Ở kích thước bình thường, khác biệt này gần như không thể nhận ra
      [0] https://mspoweruser.com/why-windows-10s-asymmetrical-cursor-...
      [1] https://old.reddit.com/r/TIHI/comments/fwnep0/thanks_i_hate_...
      [2] đã chỉnh sửa, cảm ơn jusuhi
    • Các con trỏ độ phân giải cao hiện nay trông như phiên bản phóng to của con trỏ gốc. Có thể là vì lý do tương thích, do vẫn còn nhiều màn hình dùng tỷ lệ 100%
    • Việc các tooltip nhỏ bị con trỏ che ở bên dưới nên không đọc được, và vừa di chuyển con trỏ đi thì tooltip lại biến mất, vẫn là điều khiến tôi thấy khó chịu. Đây là vấn đề một ngày nào đó thực sự có thể sửa được
    • Tôi cho rằng đó là vì Windows thiếu sự chú ý đến chi tiết và được làm ra mà không có cảm quan thẩm mỹ. Ví dụ, tôi còn nhớ rất rõ khi Windows XP ra mắt, một số biểu tượng mặc định còn không được căn đúng theo cùng một đường cơ sở. Điều này đã được sửa trong các service pack về sau
    • Có một lời giải thích tôi từng thấy ở đâu đó là, làm vậy khiến con trỏ trông cân đối hơn
  • Ngoài các lý do mà tôi thấy hợp lý như không che khuất đối tượng được trỏ tới và bắt chước động tác chỉ bằng ngón tay, có thể thêm một lý do nữa: gần như mọi thứ hiển thị trên màn hình đều vuông góc với trục x hoặc trục y. Vì thế con trỏ nghiêng nổi bật giữa phần còn lại của nội dung
    Bổ sung thêm nét khác biệt rất Amiga: con trỏ chuột Amiga thời kỳ đầu nghiêng 45° so với trục x, khác với các con trỏ sắc nhọn hơn của những GUI phổ biến khác. Nó cũng có công cụ tích hợp để tạo con trỏ chuột tùy chỉnh, và cá nhân tôi rất thích. Có thể xem ví dụ tại http://toastytech.com/guis/amiga12.html

    • Kiểu con trỏ mũi tên gốc của Amiga ngắn và tù có thể là vì hardware sprite chỉ khả dụng ở độ phân giải thấp, và các đường bậc thang theo tỷ lệ 2:1 trông không được đẹp lắm
      Trong Amiga OS 2.0 nó được đổi sang kiểu nhọn hơn nhưng vẫn nghiêng 45°. Mãi đến AGA trên Amiga 1200/4000 mới có thể dùng con trỏ chuột độ phân giải cao
    • Cả việc thiết lập hotspot cũng được tính đến
      Tương tự con trỏ chuột Macintosh, điểm nhấp không phải là (0,0) mà là (1,1). Trong trình chỉnh sửa ở trang được liên kết, đó là chấm màu cam nằm trong vùng màu da
  • Một lý do nghe khá thuyết phục là khi dùng con trỏ để chỉ vào thứ gì đó, nó không che khuất đối tượng đang được chỉ tới. Nếu con trỏ bị đảo ngược hoặc căn giữa, khi đặt lên nút bấm nó sẽ che mất một phần của nút
    Điều này giả định người dùng tiếp cận từ phía dưới bên phải, mà bản thân điều đó cũng có thể là do hình dạng con trỏ tạo ra. Dù vậy, tôi vẫn thấy giả thuyết liên quan đến hướng đọc giải thích tốt hơn việc người dùng muốn tiếp cận từ phía dưới bên phải

  • Lúc đầu tôi cũng nghĩ vậy, nhưng khi xem lại cách dùng chuột trong thực tế thì có vẻ không khớp lắm. Cũng tự hỏi không biết chỉ mình tôi thấy vậy hay không
    Trước hết, trong hơn 95% trường hợp dùng desktop thông thường, đối tượng bạn định bấm vẫn chưa nằm dưới chuột nên không có gì bị che cả. Bạn di chuyển chuột tới mục tiêu, và đến lúc tới nơi thì đã quyết định sẽ bấm rồi, nên bên dưới có gì cũng không quan trọng
    Thứ hai, nếu chuột đang nằm trên thứ cần đọc thì tôi thường sẽ di nó đi chỗ khác. Kể cả khi nó đổi thành con trỏ dạng chữ I trên văn bản cũng vậy. Dù là kiểu con trỏ nào thì độ dày và chiều cao của nét con trỏ thường vẫn lớn hơn các nét chữ được render bên dưới, nên lúc nào cũng sẽ che mất gì đó. Nghĩa là dù con trỏ không nghiêng thì nó cũng chỉ che cùng một diện tích ở vị trí hơi khác đi thôi, và trong sử dụng thực tế thì gần như không có khác biệt
    Hướng tiếp cận phụ thuộc vào con trỏ đang ở đâu và mục tiêu ở đâu. Sẽ rất thú vị nếu có bản đồ nhiệt từ dữ liệu sử dụng hằng ngày, nhưng chỉ cần nhìn nhanh vào những thứ hay dùng như taskbar phía dưới và thanh tab trình duyệt phía trên thì có thể thấy mục tiêu bấm nằm ở cả bên trái lẫn bên phải màn hình, còn con trỏ thì có thể ở bất cứ đâu. Có thể một vài hướng tiếp cận phổ biến hơn đôi chút, nhưng chắc chênh lệch không lớn
    Cuối cùng, những phần mềm như CAD, nơi việc che khuất thực sự có thể quan trọng, thường dùng con trỏ tùy chỉnh như hình chữ thập 1 pixel chứ không dùng con trỏ nghiêng

  • Có khi nó mô phỏng bút máy? Khi viết bằng bút máy thì người ta cầm như vậy, và con trỏ là ngòi bút ảo
    https://youtu.be/U9mWKwXfF6s?t=155s

    • Nếu vậy thì người dùng chuột cho người thuận tay trái chẳng phải nên dùng con trỏ nghiêng theo hướng ngược lại sao?
  • Lại là Xerox PARC. Có cảm giác như mọi thứ chúng ta có ngày nay đều được phát minh ở đây. Sao họ có thể thành công và có tầm ảnh hưởng đến vậy nhỉ?

  • Điểm cốt lõi của pointer là nó phải phân biệt được về mặt thị giác với đối tượng mà nó đang chỉ vào
    GUI thông thường phần lớn có các góc thẳng và tính đối xứng nhất định. Một con trỏ đối xứng tương tự sẽ dễ hòa lẫn vào nền hơn và dễ bị mất dấu hơn về mặt thị giác
    Nó nghiêng theo hướng nào chỉ là thứ yếu; điều quan trọng là sự bất quy tắc của độ nghiêng, tạo ra tương phản với phần còn lại của giao diện

    • Không biết là do tôi già rồi, hay do các màn hình mới với HDR/độ phân giải 5120/mức trắng-đen cực đoan, nhưng dạo gần đây tôi cứ hay bị mất con trỏ trên nền trắng nên phải đổi màu con trỏ từ trắng sang xanh lá