Can't figure out how to make a third point on a line

Hi,

I’m makeing a game and I am having trouble with a function I have made to help with Line of sight in my game. What I am trying to accomplish is to have my player sample points in a straight line to see if the points are walk able. What I have sofar is both points, the start and the end, but i can’t figure out how to find another point on the same line. I believe my math is off, can anyone point out what i am doing wrong?

function Actor:angleOfPoint( pt )
   local x, y = pt.x, pt.y
   local radian = math.atan2(y,x)
   local angle = radian*180/math.pi
   return angle
end

function Actor:hasLos(posx, posy, grid)
    

    local myPoint = vec2(posx,posy)

    if myPoint then
      local angle = self:angleOfPoint(myPoint)
      local xvel = 1
      local yvel = 1
    
      if angle >= 0 and angle < 90 then	--q1
	
		xvel = (angle/90)
		yvel = 1 - (angle/90)
	    end
	if angle >= 90 and angle < 180 then	--q2
	
		xvel = 1 - ((angle - 90)/90)
		yvel = 0 - ((angle - 90)/90)
	    
	elseif angle >= 180 and angle < 270 then --q3
	
		xvel = 0 - ((angle - 180)/90)
		yvel = ((angle - 180)/90) - 1
	
	elseif angle >= 270 and angle < 360 then --q4
	
		xvel = ((angle - 270)/90) - 1
		yvel = ((angle - 270)/90)
	end
    
    local increment = 8
    local errorRange = 12
    print("Angle:Start:End " .. angle ..":" 
                            .. self.x .."," .. self.y .. ":" 
                            .. posx   .."," .. posy)

    local vec =  vec2(posx,posy) - vec2(self.x,self.y)
    print ("P2 - P1: ")
    print (vec)
    local scaled = vec/math.sqrt((vec.x*vec.x) + (vec.y*vec.y))
    print ("Vec Scaled: ")
    print (scaled)
    
    local point3 = vec2(posx,posy) + vec2(scaled.x*3,scaled.y*3)  -- using 3 as the scale for 
                                                                                                 -- testing, this should make 
                                                                                                 -- the lines larger than the org.                                                          
    print ("Point 3: ")
    print (point3)
    table.insert( self.angles,{x1=self.tweenObject.x,y1=self.tweenObject.y,x2=point3.x,y2=point3.y})
    table.insert( self.angles,{x1=self.tweenObject.x,y1=self.tweenObject.y,x2=posx,y2=posy})

       return false  -- who cares if this works until i can plot an additional point properly
    else                -- if myPoint is false
        print("Nope")
        return false    -- return false
    end                 -- end of myPoint check
end

Actually, you can do it without any trigonometry, just pro rate the x,y differences

If you want the point 1/3 way along the line, it is x1 + (x2-x1)/3 , y1 + (y2-y1)/3

Awesome, just what i was looking for.

Thanks!

Also, slightly off-topic, you can use math.deg(radian) rather than radian*180/math.pi.