Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 749289
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T14:25:03+00:00 2026-05-14T14:25:03+00:00

I’m using CML to manage the 3D math in an OpenGL-based interface project I’m

  • 0

I’m using CML to manage the 3D math in an OpenGL-based interface project I’m making for work. I need to know the width of the viewing frustum at a given distance from the eye point, which is kept as a part of a 4×4 matrix that represents the camera. My goal is to position gui objects along the apparent edge of the viewport, but at some distance into the screen from the near clipping plane.

CML has a function to extract the planes of the frustum, giving them back in Ax + By + Cz + D = 0 form. This frustum is perpendicular to the camera, which isn’t necessarily aligned with the z axis of the perspective projection.

I’d like to extract x and z coordinates so as to pin graphical elements to the sides of the screen at different distances from the camera. What is the best way to go about doing it?

Thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T14:25:04+00:00Added an answer on May 14, 2026 at 2:25 pm

    This seems to be a duplicate of Finding side length of a cross-section of a pyramid frustum/truncated pyramid, if you already have a cross-section of known width a known distance from the apex. If you don’t have that and you want to derive the answer yourself you can follow these steps.

    1. Take two adjacent planes and find
      their line of intersection L1. You
      can use the steps here. Really
      what you need is the direction
      vector of the line.
    2. Take two more planes, one the same
      as in the previous step, and find
      their line of intersection L2.
    3. Note that all planes of the form Ax + By + Cz + D = 0 go through the origin, so you know that L1 and L2
      intersect.
    4. Draw yourself a picture of the
      direction vectors for L1 and L2,
      tails at the origin. These form an
      angle; call it theta. Find theta
      using the formula for the angle
      between two vectors, e.g. here.
    5. Draw a bisector of that angle. Draw
      a perpendicular to the bisector at
      the distance d you want from the
      origin (this creates an isosceles
      triangle, bisected into two
      congruent right triangles). The
      length of the perpendicular is your
      desired frustum width w. Note that w is
      twice the length of one of the bases
      of the right triangles.
    6. Let r be the length of the
      hypotenuses of the right triangles.
      Then rcos(theta/2)=d and
      r
      sin(theta/2)=w/2, so
      tan(theta/2)=(w/2)/d which implies
      w=2d*tan(theta/2). Since you know d
      and theta, you are done.

    Note that we have found the length of one side of a cross-section of a frustrum. This will work with any perpendicular cross-section of any frustum. This can be extended to adapt it to a non-perpendicular cross-section.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 371k
  • Answers 371k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer I'm finding it hard to follow the problem. Can you… May 14, 2026 at 7:06 pm
  • Editorial Team
    Editorial Team added an answer Q1: You have to bundle the jar inside an application… May 14, 2026 at 7:06 pm
  • Editorial Team
    Editorial Team added an answer If I were you I would worry more on how… May 14, 2026 at 7:06 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.